Cs 246 assignment 5