add test cases for functionality