Created by josh lingenfelter
Contributed by Patrice Barnabé
Contributed by Matthijs Sluiter
Contributed by Nick Sherman