I think factory part easily can be handled by implementation. Removing it doesn't reduce interoperability.