My final project for CPS344 - Fall 2013.