better test cases
refactoring
refinement