New module is extendable and modular, allowing constraints to be run in the expected order without relying on possibly undefined behavior