Refactor of the DSL