adding more test cases and preparing for refactor