Implemented and Tested all methods.