protocol agnostic notation