CSCI3308 Final Project