design of DSL