Contributed by Florian Runge
Contributed by Chris Purcell
Contributed by Jasper de Waard
Contributed by Patrick Barber
Contributed by Matthew Buchanan
Contributed by Stephen Coles