diff --git a/apps/federatedfilesharing/appinfo/app.php b/apps/federatedfilesharing/appinfo/app.php
index 6e5a1535223252fddb1bbc34bc501736e3078c2d..39b47eab65664d2a56c5ac3dab44ea49cf531c76 100644
--- a/apps/federatedfilesharing/appinfo/app.php
+++ b/apps/federatedfilesharing/appinfo/app.php
@@ -23,22 +23,6 @@
  *
  */
 
-use OCA\FederatedFileSharing\Notifier;
 use OCA\FederatedFileSharing\AppInfo\Application;
 
-$app = \OC::$server->query(Application::class);
-$eventDispatcher = \OC::$server->getEventDispatcher();
-
-$manager = \OC::$server->getNotificationManager();
-$manager->registerNotifierService(Notifier::class);
-
-$federatedShareProvider = $app->getFederatedShareProvider();
-
-$eventDispatcher->addListener(
-	'OCA\Files::loadAdditionalScripts',
-	function() use ($federatedShareProvider) {
-		if ($federatedShareProvider->isIncomingServer2serverShareEnabled()) {
-			\OCP\Util::addScript('federatedfilesharing', 'external');
-		}
-	}
-);
+\OC::$server->query(Application::class);
diff --git a/apps/federatedfilesharing/js/external.js b/apps/federatedfilesharing/js/external.js
index 1daecd2e744bca8709566d0c554766b7b66d0aba..dd39bcde1e6e48728a0ad3060f68791946c92ab2 100644
--- a/apps/federatedfilesharing/js/external.js
+++ b/apps/federatedfilesharing/js/external.js
@@ -1,4 +1,4 @@
-/*
+/**
  * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
  *
  * This file is licensed under the Affero General Public License version 3
@@ -7,17 +7,22 @@
  * See the COPYING-README file.
  *
  */
-(function () {
+(function() {
+
+	OCA.Sharing = OCA.Sharing || {}
+
 	/**
 	 * Shows "add external share" dialog.
 	 *
-	 * @param {String} remote remote server URL
-	 * @param {String} owner owner name
-	 * @param {String} name name of the shared folder
-	 * @param {String} token authentication token
+	 * @param {Object} share the share
+	 * @param {String} share.remote remote server URL
+	 * @param {String} share.owner owner name
+	 * @param {String} share.name name of the shared folder
+	 * @param {String} share.token authentication token
 	 * @param {bool} passwordProtected true if the share is password protected
+	 * @param {Function} callback the callback
 	 */
-	OCA.Sharing.showAddExternalDialog = function (share, passwordProtected, callback) {
+	OCA.Sharing.showAddExternalDialog = function(share, passwordProtected, callback) {
 		var remote = share.remote;
 		var owner = share.ownerDisplayName || share.owner;
 		var name = share.name;
@@ -28,10 +33,10 @@
 				t(
 					'files_sharing',
 					'Do you want to add the remote share {name} from {owner}@{remote}?',
-					{name: name, owner: owner, remote: remoteClean}
+					{ name: name, owner: owner, remote: remoteClean }
 				),
-				t('files_sharing','Remote share'),
-				function (result) {
+				t('files_sharing', 'Remote share'),
+				function(result) {
 					callback(result, share);
 				},
 				true
@@ -41,15 +46,15 @@
 				t(
 					'files_sharing',
 					'Do you want to add the remote share {name} from {owner}@{remote}?',
-					{name: name, owner: owner, remote: remoteClean}
+					{ name: name, owner: owner, remote: remoteClean }
 				),
-				t('files_sharing','Remote share'),
-				function (result, password) {
+				t('files_sharing', 'Remote share'),
+				function(result, password) {
 					share.password = password;
 					callback(result, share);
 				},
 				true,
-				t('files_sharing','Remote share password'),
+				t('files_sharing', 'Remote share password'),
 				true
 			).then(this._adjustDialog);
 		}
@@ -93,7 +98,7 @@
 		processIncomingShareFromUrl: function() {
 			var fileList = this.filesApp.fileList;
 			var params = OC.Util.History.parseUrlQuery();
-			//manually add server-to-server share
+			// manually add server-to-server share
 			if (params.remote && params.token && params.owner && params.name) {
 
 				var callbackAddShare = function(result, share) {
@@ -109,19 +114,15 @@
 								name: share.name,
 								password: password
 							}
-						).done(
-							function(data) {
-								if (data.hasOwnProperty('legacyMount')) {
-									fileList.reload();
-								} else {
-									OC.Notification.showTemporary(data.message);
-								}
-						}
-						).fail(
-							function(data) {
-								OC.Notification.showTemporary(JSON.parse(data.responseText).message);
+						).done(function(data) {
+							if (data.hasOwnProperty('legacyMount')) {
+								fileList.reload();
+							} else {
+								OC.Notification.showTemporary(data.message);
 							}
-						);
+						}).fail(function(data) {
+							OC.Notification.showTemporary(JSON.parse(data.responseText).message);
+						});
 					}
 				};
 
@@ -142,36 +143,31 @@
 		processSharesToConfirm: function() {
 			var fileList = this.filesApp.fileList;
 			// check for new server-to-server shares which need to be approved
-			$.get(OC.generateUrl('/apps/files_sharing/api/externalShares'),
-			{},
-			function(shares) {
+			$.get(OC.generateUrl('/apps/files_sharing/api/externalShares'), {}, function(shares) {
 				var index;
 				for (index = 0; index < shares.length; ++index) {
 					OCA.Sharing.showAddExternalDialog(
-							shares[index],
-							false,
-							function(result, share) {
-								if (result) {
-									// Accept
-									$.post(OC.generateUrl('/apps/files_sharing/api/externalShares'), {id: share.id})
-										.then(function() {
-											fileList.reload();
-										});
-								} else {
-									// Delete
-									$.ajax({
-										url: OC.generateUrl('/apps/files_sharing/api/externalShares/'+share.id),
-										type: 'DELETE'
+						shares[index],
+						false,
+						function(result, share) {
+							if (result) {
+								// Accept
+								$.post(OC.generateUrl('/apps/files_sharing/api/externalShares'), {id: share.id})
+									.then(function() {
+										fileList.reload();
 									});
-								}
+							} else {
+								// Delete
+								$.ajax({
+									url: OC.generateUrl('/apps/files_sharing/api/externalShares/'+share.id),
+									type: 'DELETE'
+								});
 							}
+						}
 					);
-				}
-
-			});
-
+				}});
 		}
 	};
-})();
+})(OC, OCA);
 
 OC.Plugins.register('OCA.Files.App', OCA.Sharing.ExternalShareDialogPlugin);
diff --git a/apps/federatedfilesharing/lib/AppInfo/Application.php b/apps/federatedfilesharing/lib/AppInfo/Application.php
index 07cd8d1ea3e904fcd739f3cc37bc020f40d89542..b86ebebe26f2d76dd6b96eb552403c432feb7191 100644
--- a/apps/federatedfilesharing/lib/AppInfo/Application.php
+++ b/apps/federatedfilesharing/lib/AppInfo/Application.php
@@ -32,7 +32,7 @@ use OCA\FederatedFileSharing\AddressHandler;
 use OCA\FederatedFileSharing\Controller\RequestHandlerController;
 use OCA\FederatedFileSharing\FederatedShareProvider;
 use OCA\FederatedFileSharing\Notifications;
-use OCA\FederatedFileSharing\OCM\CloudFederationProvider;
+use OCA\FederatedFileSharing\Notifier;
 use OCA\FederatedFileSharing\OCM\CloudFederationProviderFiles;
 use OCP\AppFramework\App;
 use OCP\GlobalScale\IConfig;
@@ -99,6 +99,23 @@ class Application extends App {
 				$server->getCloudFederationProviderManager()
 			);
 		});
+
+		// register events listeners
+		$eventDispatcher = $server->getEventDispatcher();
+		$manager = $server->getNotificationManager();
+		$federatedShareProvider = $this->getFederatedShareProvider();
+
+		$manager->registerNotifierService(Notifier::class);
+		
+		$eventDispatcher->addListener(
+			'OCA\Files::loadAdditionalScripts',
+			function() use ($federatedShareProvider) {
+				if ($federatedShareProvider->isIncomingServer2serverShareEnabled()) {
+					\OCP\Util::addScript('federatedfilesharing', 'external');
+				}
+			}
+		);
+
 	}
 
 	/**