protocol definitions.