start conceptual refactoring