Needs empty ctor so we can use Constraints instead.