Implemented assignment 1 and 2