added more operations and a unit test