IProtocolFactory