first draft of DSL grammar