Implemented assignment1, a-g