architectur refactoring