common protocol