CS2300 Final Project