added some test cases, not yet done