CS4830 assignment 2