CS471 Final Project