CS246 solo project