Contributed by Florian Hardwig
Contributed by Gareth Hague
Contributed by Rodrigo Saiani
Contributed by Al Campbell
Contributed by Ramiro Espinoza