make setup protocol-independent