Contributed by Florian Hardwig
Contributed by Jackson Showalter-Cavanaugh
Contributed by Stephen Coles