Contributed by Jaap Smit
Contributed by Stephen Coles
Contributed by Christoffer Leka
Contributed by Giovani Castelucci