Assignment 3 for CSCI4229