Originally written by:
John Evans - http://github.com/prujohn

With contributions by:
Kevin Moore - https://github.com/kevmoo
Filip Hracek - https://github.com/filiph
Dan Shultz - https://github.com/danschultz
Kai Sellgren - https://github.com/kaisellgren
Adam Singer - https://github.com/financeCoding
Anthony Lai - https://github.com/ajlai
Nick Floros - https://github.com/nickfloros
Daniel Gasienica  - https://github.com/gasi
