A project for COMP40 by John Spiva and Ian Luo