http://cs.bluffton.edu/~scoffman/trick.html