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