code layers refactoring