Final Project for CPSC 183 at Yale