split up updater protocols into multiple modules