More refactor on the DSL