Created by Peter Bedford
Contributed by Diego Aguilar Villalobos
Contributed by Type@Cooper
Contributed by Nick Sherman