Is it necessary to check the protocol type?  This way required code changes whenever the list of supported aggregation protocols changes (heaven forbid).