Edited for Assignment 2