refactoring DSL
Refactoring dsl and example