Implement Assignment 1