I'd drop `self.checkConstraints` and set the value directly to `self.arguments['checkConstraints']` in `__init__` and `with_constraints` - this would reduce the `create_object` code, which is like to be customized by a subclass.