Contributed by Wim Maes
Contributed by Stephen Shapiro
Contributed by jonathan sangster
Contributed by Manuel Wesely