specify in/out protocols