re-adjust the structure of protocol