Make the Protocol interface provide factories for ProtocolClient and ProtocolServer rather than having to maintain singleton instances.
Refactor protocol API to remove AsyncCallback method calls and instead provide a ProtocolHandler interface.
Update README documentation for protocol handlers.