DSL Refactoring (part 1)