detailed DSL