diff --git a/KdeConnect/KdeConnect.iml b/KdeConnect/KdeConnect.iml
index 2666b857..79344f5d 100644
--- a/KdeConnect/KdeConnect.iml
+++ b/KdeConnect/KdeConnect.iml
@@ -6,7 +6,7 @@
-
+
diff --git a/KdeConnect/src/main/java/org/kde/kdeconnect/ComputerLinks/BaseComputerLink.java b/KdeConnect/src/main/java/org/kde/kdeconnect/Backends/BaseComputerLink.java
similarity index 92%
rename from KdeConnect/src/main/java/org/kde/kdeconnect/ComputerLinks/BaseComputerLink.java
rename to KdeConnect/src/main/java/org/kde/kdeconnect/Backends/BaseComputerLink.java
index 36ffddda..2dc741f7 100644
--- a/KdeConnect/src/main/java/org/kde/kdeconnect/ComputerLinks/BaseComputerLink.java
+++ b/KdeConnect/src/main/java/org/kde/kdeconnect/Backends/BaseComputerLink.java
@@ -1,6 +1,5 @@
-package org.kde.kdeconnect.ComputerLinks;
+package org.kde.kdeconnect.Backends;
-import org.kde.kdeconnect.LinkProviders.BaseLinkProvider;
import org.kde.kdeconnect.NetworkPackage;
import java.util.ArrayList;
diff --git a/KdeConnect/src/main/java/org/kde/kdeconnect/LinkProviders/BaseLinkProvider.java b/KdeConnect/src/main/java/org/kde/kdeconnect/Backends/BaseLinkProvider.java
similarity index 93%
rename from KdeConnect/src/main/java/org/kde/kdeconnect/LinkProviders/BaseLinkProvider.java
rename to KdeConnect/src/main/java/org/kde/kdeconnect/Backends/BaseLinkProvider.java
index 21d4f73e..aadd7084 100644
--- a/KdeConnect/src/main/java/org/kde/kdeconnect/LinkProviders/BaseLinkProvider.java
+++ b/KdeConnect/src/main/java/org/kde/kdeconnect/Backends/BaseLinkProvider.java
@@ -1,8 +1,8 @@
-package org.kde.kdeconnect.LinkProviders;
+package org.kde.kdeconnect.Backends;
import android.util.Log;
-import org.kde.kdeconnect.ComputerLinks.BaseComputerLink;
+import org.kde.kdeconnect.Backends.BaseComputerLink;
import org.kde.kdeconnect.NetworkPackage;
import java.util.ArrayList;
diff --git a/KdeConnect/src/main/java/org/kde/kdeconnect/ComputerLinks/LanComputerLink.java b/KdeConnect/src/main/java/org/kde/kdeconnect/Backends/LanBackend/LanComputerLink.java
similarity index 85%
rename from KdeConnect/src/main/java/org/kde/kdeconnect/ComputerLinks/LanComputerLink.java
rename to KdeConnect/src/main/java/org/kde/kdeconnect/Backends/LanBackend/LanComputerLink.java
index a73ccb6b..ff645604 100644
--- a/KdeConnect/src/main/java/org/kde/kdeconnect/ComputerLinks/LanComputerLink.java
+++ b/KdeConnect/src/main/java/org/kde/kdeconnect/Backends/LanBackend/LanComputerLink.java
@@ -1,9 +1,10 @@
-package org.kde.kdeconnect.ComputerLinks;
+package org.kde.kdeconnect.Backends.LanBackend;
import android.util.Log;
import org.apache.mina.core.session.IoSession;
-import org.kde.kdeconnect.LinkProviders.BaseLinkProvider;
+import org.kde.kdeconnect.Backends.BaseComputerLink;
+import org.kde.kdeconnect.Backends.BaseLinkProvider;
import org.kde.kdeconnect.NetworkPackage;
public class LanComputerLink extends BaseComputerLink {
diff --git a/KdeConnect/src/main/java/org/kde/kdeconnect/LinkProviders/LanLinkProvider.java b/KdeConnect/src/main/java/org/kde/kdeconnect/Backends/LanBackend/LanLinkProvider.java
similarity index 99%
rename from KdeConnect/src/main/java/org/kde/kdeconnect/LinkProviders/LanLinkProvider.java
rename to KdeConnect/src/main/java/org/kde/kdeconnect/Backends/LanBackend/LanLinkProvider.java
index 37c94249..b453e033 100644
--- a/KdeConnect/src/main/java/org/kde/kdeconnect/LinkProviders/LanLinkProvider.java
+++ b/KdeConnect/src/main/java/org/kde/kdeconnect/Backends/LanBackend/LanLinkProvider.java
@@ -1,4 +1,4 @@
-package org.kde.kdeconnect.LinkProviders;
+package org.kde.kdeconnect.Backends.LanBackend;
import android.content.Context;
import android.os.AsyncTask;
@@ -16,7 +16,7 @@ import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.transport.socket.nio.NioDatagramAcceptor;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import org.apache.mina.transport.socket.nio.NioSocketConnector;
-import org.kde.kdeconnect.ComputerLinks.LanComputerLink;
+import org.kde.kdeconnect.Backends.BaseLinkProvider;
import org.kde.kdeconnect.NetworkPackage;
import java.net.DatagramPacket;
diff --git a/KdeConnect/src/main/java/org/kde/kdeconnect/ComputerLinks/LoopbackComputerLink.java b/KdeConnect/src/main/java/org/kde/kdeconnect/Backends/LoopbackBackend/LoopbackComputerLink.java
similarity index 71%
rename from KdeConnect/src/main/java/org/kde/kdeconnect/ComputerLinks/LoopbackComputerLink.java
rename to KdeConnect/src/main/java/org/kde/kdeconnect/Backends/LoopbackBackend/LoopbackComputerLink.java
index fe43d101..e1baa4a6 100644
--- a/KdeConnect/src/main/java/org/kde/kdeconnect/ComputerLinks/LoopbackComputerLink.java
+++ b/KdeConnect/src/main/java/org/kde/kdeconnect/Backends/LoopbackBackend/LoopbackComputerLink.java
@@ -1,9 +1,7 @@
-package org.kde.kdeconnect.ComputerLinks;
+package org.kde.kdeconnect.Backends.LoopbackBackend;
-import android.util.Log;
-
-import org.apache.mina.core.session.IoSession;
-import org.kde.kdeconnect.LinkProviders.BaseLinkProvider;
+import org.kde.kdeconnect.Backends.BaseComputerLink;
+import org.kde.kdeconnect.Backends.BaseLinkProvider;
import org.kde.kdeconnect.NetworkPackage;
public class LoopbackComputerLink extends BaseComputerLink {
diff --git a/KdeConnect/src/main/java/org/kde/kdeconnect/Backends/LoopbackBackend/LoopbackLinkProvider.java b/KdeConnect/src/main/java/org/kde/kdeconnect/Backends/LoopbackBackend/LoopbackLinkProvider.java
new file mode 100644
index 00000000..9385ab9c
--- /dev/null
+++ b/KdeConnect/src/main/java/org/kde/kdeconnect/Backends/LoopbackBackend/LoopbackLinkProvider.java
@@ -0,0 +1,43 @@
+package org.kde.kdeconnect.Backends.LoopbackBackend;
+
+import android.content.Context;
+
+import org.kde.kdeconnect.Backends.BaseLinkProvider;
+import org.kde.kdeconnect.NetworkPackage;
+
+public class LoopbackLinkProvider extends BaseLinkProvider {
+
+ private Context context;
+
+ public LoopbackLinkProvider(Context context) {
+ this.context = context;
+ }
+
+ @Override
+ public void onStart() {
+ onNetworkChange();
+ }
+
+ @Override
+ public void onStop() {
+
+ }
+
+ @Override
+ public void onNetworkChange() {
+
+ NetworkPackage np = NetworkPackage.createIdentityPackage(context);
+ connectionAccepted(np, new LoopbackComputerLink(this));
+
+ }
+
+ @Override
+ public int getPriority() {
+ return 0;
+ }
+
+ @Override
+ public String getName() {
+ return "LoopbackLinkProvider";
+ }
+}
diff --git a/KdeConnect/src/main/java/org/kde/kdeconnect/BackgroundService.java b/KdeConnect/src/main/java/org/kde/kdeconnect/BackgroundService.java
index 481b4694..5581fd0e 100644
--- a/KdeConnect/src/main/java/org/kde/kdeconnect/BackgroundService.java
+++ b/KdeConnect/src/main/java/org/kde/kdeconnect/BackgroundService.java
@@ -11,10 +11,10 @@ import android.preference.PreferenceManager;
import android.util.Base64;
import android.util.Log;
-import org.kde.kdeconnect.ComputerLinks.BaseComputerLink;
-import org.kde.kdeconnect.LinkProviders.BaseLinkProvider;
-import org.kde.kdeconnect.LinkProviders.LanLinkProvider;
-import org.kde.kdeconnect.LinkProviders.LoopbackLinkProvider;
+import org.kde.kdeconnect.Backends.BaseComputerLink;
+import org.kde.kdeconnect.Backends.BaseLinkProvider;
+import org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider;
+import org.kde.kdeconnect.Backends.LoopbackBackend.LoopbackLinkProvider;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
diff --git a/KdeConnect/src/main/java/org/kde/kdeconnect/Device.java b/KdeConnect/src/main/java/org/kde/kdeconnect/Device.java
index faef43af..a9e29d3d 100644
--- a/KdeConnect/src/main/java/org/kde/kdeconnect/Device.java
+++ b/KdeConnect/src/main/java/org/kde/kdeconnect/Device.java
@@ -15,7 +15,7 @@ import android.support.v4.app.NotificationCompat;
import android.util.Base64;
import android.util.Log;
-import org.kde.kdeconnect.ComputerLinks.BaseComputerLink;
+import org.kde.kdeconnect.Backends.BaseComputerLink;
import org.kde.kdeconnect.Plugins.Plugin;
import org.kde.kdeconnect.Plugins.PluginFactory;
import org.kde.kdeconnect.UserInterface.PairActivity;
diff --git a/KdeConnect/src/main/java/org/kde/kdeconnect/LinkProviders/LoopbackLinkProvider.java b/KdeConnect/src/main/java/org/kde/kdeconnect/LinkProviders/LoopbackLinkProvider.java
deleted file mode 100644
index 8e7d23f8..00000000
--- a/KdeConnect/src/main/java/org/kde/kdeconnect/LinkProviders/LoopbackLinkProvider.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.kde.kdeconnect.LinkProviders;
-
-import android.content.Context;
-import android.os.AsyncTask;
-import android.util.Log;
-
-import org.apache.mina.core.future.ConnectFuture;
-import org.apache.mina.core.future.IoFuture;
-import org.apache.mina.core.future.IoFutureListener;
-import org.apache.mina.core.service.IoHandler;
-import org.apache.mina.core.service.IoHandlerAdapter;
-import org.apache.mina.core.session.IoSession;
-import org.apache.mina.filter.codec.ProtocolCodecFilter;
-import org.apache.mina.filter.codec.textline.LineDelimiter;
-import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
-import org.apache.mina.transport.socket.nio.NioDatagramAcceptor;
-import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
-import org.apache.mina.transport.socket.nio.NioSocketConnector;
-import org.kde.kdeconnect.ComputerLinks.LanComputerLink;
-import org.kde.kdeconnect.ComputerLinks.LoopbackComputerLink;
-import org.kde.kdeconnect.NetworkPackage;
-
-import java.net.DatagramPacket;
-import java.net.DatagramSocket;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.nio.charset.Charset;
-import java.util.HashMap;
-
-public class LoopbackLinkProvider extends BaseLinkProvider {
-
- private Context context;
-
- public LoopbackLinkProvider(Context context) {
- this.context = context;
- }
-
- @Override
- public void onStart() {
- onNetworkChange();
- }
-
- @Override
- public void onStop() {
-
- }
-
- @Override
- public void onNetworkChange() {
-
- NetworkPackage np = NetworkPackage.createIdentityPackage(context);
- connectionAccepted(np, new LoopbackComputerLink(this));
-
- }
-
- @Override
- public int getPriority() {
- return 0;
- }
-
- @Override
- public String getName() {
- return "LoopbackLinkProvider";
- }
-}
diff --git a/KdeConnect/src/main/java/org/kde/kdeconnect/Plugins/MprisPlugin/MprisActivity.java b/KdeConnect/src/main/java/org/kde/kdeconnect/Plugins/MprisPlugin/MprisActivity.java
index e2b5e356..b55e00b6 100644
--- a/KdeConnect/src/main/java/org/kde/kdeconnect/Plugins/MprisPlugin/MprisActivity.java
+++ b/KdeConnect/src/main/java/org/kde/kdeconnect/Plugins/MprisPlugin/MprisActivity.java
@@ -14,9 +14,9 @@ import android.widget.Spinner;
import android.widget.TextView;
import org.kde.kdeconnect.BackgroundService;
-import org.kde.kdeconnect.ComputerLinks.BaseComputerLink;
+import org.kde.kdeconnect.Backends.BaseComputerLink;
import org.kde.kdeconnect.Device;
-import org.kde.kdeconnect.LinkProviders.BaseLinkProvider;
+import org.kde.kdeconnect.Backends.BaseLinkProvider;
import org.kde.kdeconnect.NetworkPackage;
import org.kde.kdeconnect_tp.R;