First pass at DSL implementation. Draft.