CS172 assignment 3, due May 27