added test cases, broken up into sections