compsci 230 assignment 3 version 2