Contributed by Julian Schröpel
Contributed by Clay Hickson
Contributed by Nick Sherman
Contributed by Stephen Coles