Submitted fully implemented assignment 2