Added the last of the protocols and some logic to reduce the number of changes to a minimum when changing the protocols.
Added the last of the protocols and some logic to reduce the number of changes to a minimum when changing the protocols.

santiagocasti/collab,santiagocasti/collab,santiagocasti/collab,santiagocasti/collab