Source: https://people.csail.mit.edu/hasinoff/pubs/hasinoff-quipster-2003.pdf