Added new test cases
Implemented all methods and added documentation