now made protocol optional