DSL refactored