register protocol