Author:
 Laurent Eschenauer <laurent@eschenauer.be>

With additional contributions from:
 Bernhard K. Weisshuhn (bkw@codingforce.com)
 Benjamin Nortier (@bjnortier)
 Andreas (@functino)
