Implement first version of DSL