Final project for CS 252r Fall 2017