That's kind of the thing, though ... Instantiation isn't an interface thing, it's an implementation detail. Enforcing factory interfaces for this purpose is basically a back door method to put `__construct` into the interface.