Assignment 3 is implemented