add protocol parse function