new DSL framework