Contributed by Ata Rehman
Contributed by Juri Zaech
Contributed by Stephen Coles
Contributed by Daniel Ioannou