Connected up the constraints module, wired up dependencies via setters
rather than calling through the parent chain. Module dependencies should
be investigated further.