updated DSL and generator