Implementing more methods and adding more tests