working on protocols