First pass at making all protocols dynamically loadable.
Don't allocate things on -C