protocol handle