ITP 499 Assignment 1