add ability to subscribe to interface messages.

Make message type factories pluggable.