extract core/Network protocol
(and implement it for the simulator on top of a subject with an observable part that filters envelopes by puk)