concept refactor