CS246 final project