http://www.wellesley.edu/CS/jherbst.html