diff --git a/src/main/java/org/nutricraft/Model/LogModel.java b/src/main/java/org/nutricraft/Model/LogModel.java
new file mode 100644
index 0000000000000000000000000000000000000000..2e21036518e90c6841569939f7ec7c62be0ad2aa
--- /dev/null
+++ b/src/main/java/org/nutricraft/Model/LogModel.java
@@ -0,0 +1,25 @@
+package org.nutricraft.Model;
+
+import org.nutricraft.Database.Database;
+
+import java.sql.Statement;
+
+public class LogModel extends Database {
+
+    public LogModel() {
+        super();
+    }
+
+    public String InsertLog(String desc, String endpoint, String ip) {
+        try {
+            Statement statement = this.connection.createStatement();
+            String query = "INSERT INTO logging (description, endpoint, ip) VALUES ('" + desc + "', '" + endpoint + "', '" + ip + "')";
+            statement.executeUpdate(query);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return "Failed to insert log";
+        }
+        return "Successfully inserted log";
+    }
+
+}
diff --git a/src/main/java/org/nutricraft/Services/CoinServices.java b/src/main/java/org/nutricraft/Services/CoinServices.java
new file mode 100644
index 0000000000000000000000000000000000000000..096cb2dbd59ceb950c224103070125973ea46e32
--- /dev/null
+++ b/src/main/java/org/nutricraft/Services/CoinServices.java
@@ -0,0 +1,4 @@
+package org.nutricraft.Services;
+
+public interface CoinServices {
+}
diff --git a/src/main/java/org/nutricraft/Services/CoinServicesImpl.java b/src/main/java/org/nutricraft/Services/CoinServicesImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb0f3f7e6962d9413b04324cb6c95cd43f55b526
--- /dev/null
+++ b/src/main/java/org/nutricraft/Services/CoinServicesImpl.java
@@ -0,0 +1,4 @@
+package org.nutricraft.Services;
+
+public class CoinServicesImpl implements CoinServices{
+}
diff --git a/src/main/java/org/nutricraft/Services/LevelServices.java b/src/main/java/org/nutricraft/Services/LevelServices.java
new file mode 100644
index 0000000000000000000000000000000000000000..50dfbc9d798b07437226689fb2cf99f188964472
--- /dev/null
+++ b/src/main/java/org/nutricraft/Services/LevelServices.java
@@ -0,0 +1,5 @@
+package org.nutricraft.Services;
+
+public interface LevelServices {
+    
+}
diff --git a/src/main/java/org/nutricraft/Services/LevelServicesImpl.java b/src/main/java/org/nutricraft/Services/LevelServicesImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..8452c598b94de1b73e562df86b0ee628e5352d9d
--- /dev/null
+++ b/src/main/java/org/nutricraft/Services/LevelServicesImpl.java
@@ -0,0 +1,5 @@
+package org.nutricraft.Services;
+
+public class LevelServicesImpl implements LevelServices {
+    
+}
diff --git a/src/main/java/org/nutricraft/Services/SubscriptionServices.java b/src/main/java/org/nutricraft/Services/SubscriptionServices.java
index 7b75db2823798ced361652454e6e6d57fe3dbc05..814f636e5a58f311ea65d9fde3d4920400c12890 100644
--- a/src/main/java/org/nutricraft/Services/SubscriptionServices.java
+++ b/src/main/java/org/nutricraft/Services/SubscriptionServices.java
@@ -7,8 +7,17 @@ import javax.jws.WebService;
 @WebService
 public interface SubscriptionServices {
     @WebMethod
-    public String newSubscription();
+    public String newSubscription(String idCreator, int idSubscriber);
 
     @WebMethod
-    public String checkSubscription();
+    public Boolean checkSubscription(String idCreator, int idSubscriber);
+
+    @WebMethod
+    public String getSubscribers(String idCreator);
+
+    @WebMethod
+    public String getCreators(int idSubscriber);
+
+    @WebMethod
+    public String getAllSubscription();
 }
diff --git a/src/main/java/org/nutricraft/Services/SubscriptionServicesImpl.java b/src/main/java/org/nutricraft/Services/SubscriptionServicesImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..def84236c7609214530ec2f72465d6a5d528ce0d
--- /dev/null
+++ b/src/main/java/org/nutricraft/Services/SubscriptionServicesImpl.java
@@ -0,0 +1,150 @@
+package org.nutricraft.Services;
+
+import org.nutricraft.Database.Database;
+import org.nutricraft.Model.LogModel;
+
+import javax.annotation.Resource;
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.spi.http.HttpExchange;
+import javax.xml.ws.WebServiceContext;
+import java.sql.*;
+
+@WebService
+public class SubscriptionServicesImpl implements SubscriptionServices{
+
+    @Resource
+    public WebServiceContext wsContext;
+    @WebMethod
+    public String newSubscription(String idCreator, int idSubscriber){
+        try {
+            Database db = new Database();
+            Connection connection = db.getConn();
+            Statement statement = connection.createStatement();
+            String query = "INSERT INTO subscribers (id_creator, id_user) VALUES ('" + idCreator + "', '" + idSubscriber + "')";
+            statement.executeUpdate(query);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return "newSubs";
+    }
+    @WebMethod
+    public Boolean checkSubscription(String idCreator, int idSubscriber){
+        try {
+            Database db = new Database();
+            Connection connection = db.getConn();
+            Statement statement = connection.createStatement();
+            String query = "SELECT * FROM subscribers WHERE id_creator = '" + idCreator + "' AND id_user = '" + idSubscriber + "'";
+            ResultSet result = statement.executeQuery(query);
+            if (result.next()) {
+                return true;
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return false;
+    }
+
+    @WebMethod
+    public String getSubscribers(String idCreator){
+        try {
+            Database db = new Database();
+            Connection connection = db.getConn();
+            Statement statement = connection.createStatement();
+            String query = "SELECT id_user FROM subscribers WHERE id_creator = '" + idCreator + "'";
+            ResultSet result = statement.executeQuery(query);
+            while (result.next()) {
+                int id = result.getInt("id_user");
+                System.out.println("id: " + id);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return "getSubs";
+    }
+
+    @WebMethod
+    public String getCreators(int idSubscriber){
+        try {
+            Database db = new Database();
+            Connection connection = db.getConn();
+            Statement statement = connection.createStatement();
+            String query = "SELECT id_creator FROM subscribers WHERE id_user = '" + idSubscriber + "'";
+            ResultSet result = statement.executeQuery(query);
+            while (result.next()) {
+                String id = result.getString("id_creator");
+                System.out.println("id: " + id);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return "getCreators";
+    }
+
+    @WebMethod
+    public String getAllSubscription() {
+        try {
+            Database db = new Database();
+            Connection connection = db.getConn();
+            Statement statement = connection.createStatement();
+            String query = "SELECT * FROM subscribers";
+            ResultSet result = statement.executeQuery(query);
+            while (result.next()) {
+                int id = result.getInt("id");
+                String idCreator = result.getString("id_creator");
+                int idSubscriber = result.getInt("id_users");
+                System.out.println("id: " + id + " id_creator: " + idCreator + " id_user: " + idSubscriber);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return "tea";
+    }
+
+    public Boolean validateApiKey() {
+        String[] API_KEYS = { "PremiumApp", "Postman", "RestClient", "RegularApp" };
+        MessageContext mc = wsContext.getMessageContext();
+        HttpExchange exchange = (HttpExchange) mc.get("com.sun.xml.ws.http.exchange");
+        String apiKey = exchange.getRequestHeaders().getFirst("X-API-KEY");
+        if (apiKey == null) {
+            return false;
+        } else if (apiKey.equals(API_KEYS[0]) || apiKey.equals(API_KEYS[1]) || apiKey.equals(API_KEYS[2])
+                || apiKey.equals(API_KEYS[3])) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    public void log(String description) {
+        MessageContext msgContext = wsContext.getMessageContext();
+        HttpExchange httpExchange = (HttpExchange) msgContext.get("com.sun.xml.ws.http.exchange");
+        String ip = httpExchange.getRemoteAddress().getAddress().getHostAddress();
+        String endpoint = httpExchange.getRequestURI().toString();
+        LogModel logModel = new LogModel();
+        String apiKey = httpExchange.getRequestHeaders().getFirst("X-API-KEY");
+        String desc = apiKey + ": " + description;
+        logModel.InsertLog(desc, endpoint, ip);
+    }
+}
+
+// Database db = new Database();
+// Connection connection = db.getConn();
+// try{
+//     Statement statement = connection.createStatement();
+//     String query = "SELECT * FROM logging";
+//     ResultSet result = statement.executeQuery(query);
+//     while (result.next()) {
+//         int id = result.getInt("id");
+//         String desc = result.getString("description");
+//         String ip = result.getString("ip");
+//         String endpoint = result.getString("endpoint");
+//         String date = result.getString("date");
+
+//         System.out.println("id: " + id+ " desc: " + desc + " ip: " + ip + " endpoint: " + endpoint + " date: " + date);
+//     }
+// }catch (Exception e){
+//     e.printStackTrace();
+// }
\ No newline at end of file
diff --git a/src/main/java/org/nutricraft/Services/SubscriptionServicesImplement.java b/src/main/java/org/nutricraft/Services/SubscriptionServicesImplement.java
deleted file mode 100644
index 7cd8c3fb0f20e55f9e90d162af39f0b0e275b272..0000000000000000000000000000000000000000
--- a/src/main/java/org/nutricraft/Services/SubscriptionServicesImplement.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.nutricraft.Services;
-
-import javax.jws.WebMethod;
-import javax.jws.WebService;
-
-@WebService
-public class SubscriptionServicesImplement implements SubscriptionServices{
-    @WebMethod
-    public String newSubscription(){
-        return "newSubs";
-    }
-
-    @WebMethod
-    public String checkSubscription(){
-        return "checkSubs";
-    }
-}