modified DSL version