Redesigning the dsl implementation