enhance DSL