Term project for the 15-237 class at Carnegie Mellon University.