more protocol stuff