unit refactor