CMPE277 Final Project