Refactored the plugin registration protocol