Contributed by Bryson Stohr
Contributed by René Villeaux
Contributed by Matt Kelsey
Contributed by CAST
Contributed by Matthijs Sluiter