Term project for SYSC3110 Fall 2013.