added test cases!