Tidy up and refine DSL