Final project submission for CS 130.