Complete DSL rework