add property tests and DSL test