Contributed by Pedro Teles
Contributed by Bryson Stohr
Contributed by Gareth Hague
Contributed by Noah Fidlin