CS246 Final Project