Originally written by:
Joris Hermans - http://github.com/jorishermans

With contributions by:
James Ots - https://github.com/jamesots
Thomas Gysemans - https://github.com/ThomasGysemans