less refactor