Term project for CMPT 275 at Simon Fraser University