CSCE670 Final Project