CS460 Assignment 5