Contributed by XYZ Type
Contributed by Stephen Coles
Contributed by Misha Beletsky
Contributed by Gayaneh Bagdasaryan