improve rule creation dsl