split up instructions into individual protocols