Added lots of test cases