making the protocol dynamic.