CS 499: Project 4, done in collaboration with Olen Cook.