Added many test cases