cs 246 final project