add protocol parse