diff --git a/src/main/java/org/toco/model/transaction_model.java b/src/main/java/org/toco/model/transaction_model.java
index fe085250406ee529d77b530d568dd4695280e59f..ee5fc7c295bee116af4cb8372f955d9c4827a2e8 100644
--- a/src/main/java/org/toco/model/transaction_model.java
+++ b/src/main/java/org/toco/model/transaction_model.java
@@ -39,4 +39,19 @@ public class transaction_model {
         }
     }
 
+//    get transaction count by a user
+    public Integer getTransactionCount(Integer user_id){
+        String sql = "select count(*) from transaction where user_id = (?)";
+        try (Connection connection = connector.connect() ;
+             PreparedStatement command = connection.prepareStatement(sql)) {
+            command.setInt(1, user_id);
+            command.execute();
+            ResultSet rs = command.getResultSet();
+            rs.next();
+            return rs.getInt(1);
+        } catch (SQLException exception) {
+            throw new RuntimeException("Error when getting transaction", exception);
+        }
+    }
+
 }
diff --git a/src/main/java/org/toco/publisher/gemsPublisher.java b/src/main/java/org/toco/publisher/gemsPublisher.java
deleted file mode 100644
index 1329c6434215ccabf7adca992102a001c818824e..0000000000000000000000000000000000000000
--- a/src/main/java/org/toco/publisher/gemsPublisher.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.toco.publisher;
-import javax.xml.ws.Endpoint;
-
-public class gemsPublisher {
-    public static void publish() {
-        System.out.println("publishing gems service");
-        Endpoint.publish("http://0.0.0.0:8080/gems", new org.toco.service.userGems());
-        System.out.println("gems service published");
-    }
-}
diff --git a/src/main/java/org/toco/publisher/testingPublisher.java b/src/main/java/org/toco/publisher/testingPublisher.java
deleted file mode 100644
index 01fe15dabbf46c4921c8013273fb3c16acabd7b7..0000000000000000000000000000000000000000
--- a/src/main/java/org/toco/publisher/testingPublisher.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.toco.publisher;
-import javax.xml.ws.Endpoint;
-
-public class testingPublisher {
-    public static void publish() {
-        Endpoint.publish("http://0.0.0.0:8080/testing", new org.toco.service.testing());
-    }
-}
diff --git a/src/main/java/org/toco/publisher/transactionPublisher.java b/src/main/java/org/toco/publisher/transactionPublisher.java
deleted file mode 100644
index 6e6d6d91a858f63e2b849ee1f000c5562aa877ab..0000000000000000000000000000000000000000
--- a/src/main/java/org/toco/publisher/transactionPublisher.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.toco.publisher;
-import javax.xml.ws.Endpoint;
-
-public class transactionPublisher {
-    public static void publish() {
-        System.out.println("publishing transaction service");
-        Endpoint.publish("http://0.0.0.0:8080/transaction", new org.toco.service.transaction());
-        System.out.println("transaction service published");
-    }
-
-}
-
-
-
-
diff --git a/src/main/java/org/toco/service/testing.java b/src/main/java/org/toco/service/testing.java
deleted file mode 100644
index 90fa7890d51d55e89475fe66ed1d944e9601e918..0000000000000000000000000000000000000000
--- a/src/main/java/org/toco/service/testing.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.toco.service;
-
-import org.toco.core.connector;
-
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-
-@WebService
-public class testing {
-    @WebMethod
-    public String hello(String name) {
-        connector.connect();
-        return "Hello " + name + "!";
-    }
-
-}
diff --git a/src/main/java/org/toco/service/toco_service.java b/src/main/java/org/toco/service/toco_service.java
index 25a17bc87ce2936dae8c455a40de50514d9fedf3..bd7bc6fa13a91168546325ab1f5c1bc328dcd8fa 100644
--- a/src/main/java/org/toco/service/toco_service.java
+++ b/src/main/java/org/toco/service/toco_service.java
@@ -32,7 +32,7 @@ public interface toco_service {
     );
 
     @WebMethod
-    public transaction_entity[] getTransactions(
+    public String getTransactions(
             @WebParam(name = "user_id") Integer user_id
     );
 
diff --git a/src/main/java/org/toco/service/toco_service_impl.java b/src/main/java/org/toco/service/toco_service_impl.java
index e3bfb1c6bad8b4a0af9dcada53ca27cbe1677a33..c357cf76eb77a0f9862904036351126544be364b 100644
--- a/src/main/java/org/toco/service/toco_service_impl.java
+++ b/src/main/java/org/toco/service/toco_service_impl.java
@@ -5,7 +5,6 @@ import org.toco.entity.*;
 
 
 import javax.jws.WebService;
-import javax.jws.WebMethod;
 import javax.annotation.Resource;
 import javax.xml.ws.WebServiceContext;
 import javax.xml.ws.handler.MessageContext;
@@ -70,12 +69,12 @@ public class toco_service_impl implements toco_service {
                 userGemsModel.update(new userGems_Entity(user_id, userGems - amount));
                 transaction_model transactionModel = new transaction_model();
                 transactionModel.insert(new transaction_entity(user_id, amount, type, "accepted"));
-                addLoggging("User with id " + user_id + " created a transaction with amount " + amount + " and description ACCEPTED");
+                addLoggging("User with id " + user_id + " created a transaction with amount " + amount + " and status ACCEPTED");
                 return "success";
             } else {
                 transaction_model transactionModel = new transaction_model();
                 transactionModel.insert(new transaction_entity(user_id, amount, type, "rejected"));
-                addLoggging("User with id " + user_id + " created a transaction with amount " + amount + " and description REJECTED");
+                addLoggging("User with id " + user_id + " created a transaction with amount " + amount + " and status REJECTED");
                 return "insufficient gems";
             }
         }
@@ -86,12 +85,18 @@ public class toco_service_impl implements toco_service {
     }
 
     @Override
-    public transaction_entity[] getTransactions(Integer user_id) {
+    public String getTransactions(Integer user_id) {
         if(validateApiKey()){
             transaction_model transactionModel = new transaction_model();
             transaction_entity[] transactions = transactionModel.getTransaction(user_id);
+//            create transactions to a string with each transaction on a new line
+            String ret = "";
+            int len = transactionModel.getTransactionCount(user_id);
+            for (int i = 0; i < len; i++) {
+                ret += transactions[i].toString() + "\n";
+            }
             addLoggging("User with id " + user_id + " requested his transactions");
-            return transactions;
+            return ret;
         }
         else {
             addLoggging("invalid api key for user"+user_id);
diff --git a/src/main/java/org/toco/service/transaction.java b/src/main/java/org/toco/service/transaction.java
deleted file mode 100644
index 239891d844ac3e72f1b1164d440c1ed34c226312..0000000000000000000000000000000000000000
--- a/src/main/java/org/toco/service/transaction.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.toco.service;
-
-import org.toco.model.*;
-import org.toco.entity.*;
-
-
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.annotation.Resource;
-import javax.xml.ws.WebServiceContext;
-import javax.xml.ws.handler.MessageContext;
-import com.sun.net.httpserver.HttpExchange;
-import com.sun.xml.ws.developer.JAXWSProperties;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-
-@WebService
-public class transaction {
-
-    @Resource
-    WebServiceContext wsctx;
-
-    @WebMethod
-    public void createTransaction(Integer user_id, Integer amount, String image) {
-        if (validateApiKey()){
-            userGems_model userGemsModel = new userGems_model();
-            Integer userGems = userGemsModel.getUserGems(user_id);
-            if (userGems >= amount) {
-                userGemsModel.update(new userGems_Entity(user_id, userGems - amount));
-                transaction_model transactionModel = new transaction_model();
-                transactionModel.insert(new transaction_entity(user_id, amount, image, "accepted"));
-                addLoggging("User with id " + user_id + " created a transaction with amount " + amount + " and description ACCEPTED");
-            } else {
-                transaction_model transactionModel = new transaction_model();
-                transactionModel.insert(new transaction_entity(user_id, amount, image, "rejected"));
-                addLoggging("User with id " + user_id + " created a transaction with amount " + amount + " and description REJECTED");
-            }
-        }
-        else {
-            addLoggging("User with id " + user_id + " tried to create a transaction with amount " + amount + " but failed because of invalid api key");
-        }
-    }
-
-    @WebMethod
-    public transaction_entity[] getTransactions(Integer user_id) {
-        if(validateApiKey()){
-            transaction_model transactionModel = new transaction_model();
-            transaction_entity[] transactions = transactionModel.getTransaction(user_id);
-            addLoggging("User with id " + user_id + " requested his transactions");
-            return transactions;
-        }
-        else {
-            addLoggging("invalid api key for user"+user_id);
-            return null;
-        }
-    }
-
-
-
-
-    public void  addLoggging(String description) {
-        MessageContext mctx = wsctx.getMessageContext();
-        HttpExchange req = (HttpExchange) mctx.get(JAXWSProperties.HTTP_EXCHANGE);
-        InetSocketAddress remote = req.getRemoteAddress();
-        InetAddress address = remote.getAddress();
-        String ip = address.getHostAddress();
-        String endpoint = req.getRequestURI().toString();
-        logging logging_service = new logging();
-        logging_service.addLogging(description, ip, endpoint);
-    }
-
-    public Boolean validateApiKey() {
-        String[] API_KEYS = { "toco_rest", "Postman", "toco_php"};
-        MessageContext mc = wsctx.getMessageContext();
-        HttpExchange exchange = (HttpExchange) mc.get("com.sun.xml.ws.http.exchange");
-        String apiKey = exchange.getRequestHeaders().getFirst("X-API-KEY");
-        apiKey = apiKey.hashCode() + "";
-        if (apiKey == null) {
-            return false;
-        } else if (apiKey.equals(API_KEYS[0]) || apiKey.equals(API_KEYS[1]) || apiKey.equals(API_KEYS[2])) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-}
diff --git a/src/main/java/org/toco/service/userGems.java b/src/main/java/org/toco/service/userGems.java
deleted file mode 100644
index 52a7ccf1760d131ce70dea48ff86bfe7e49b428f..0000000000000000000000000000000000000000
--- a/src/main/java/org/toco/service/userGems.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package org.toco.service;
-
-import org.toco.model.*;
-import org.toco.entity.*;
-
-
-
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.annotation.Resource;
-import javax.xml.ws.WebServiceContext;
-import javax.xml.ws.handler.MessageContext;
-import com.sun.net.httpserver.HttpExchange;
-import com.sun.xml.ws.developer.JAXWSProperties;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-
-
-
-
-@WebService
-public class userGems {
-
-    @Resource
-    WebServiceContext wsctx;
-
-
-    @WebMethod
-    public void addGems(Integer user_id, Integer gem) {
-        if (validateApiKey()){
-            userGems_Entity userGems = new userGems_Entity(user_id, gem);
-            userGems_model userGemsModel = new userGems_model();
-            if (userGemsModel.checkUser(user_id)) {
-                Integer currentGems = userGemsModel.getUserGems(user_id);
-                userGems.setGem(currentGems + gem);
-                userGemsModel.update(userGems);
-                addLoggging("User with id " + user_id + " added " + gem + " gems");
-            } else {
-                userGemsModel.insert(userGems);
-                addLoggging("User with id " + user_id + " added " + gem + " gems");
-            }
-        }
-        else {
-            addLoggging("User with id " + user_id + " tried to add " + gem + " gems but failed because of invalid api key");
-        }
-    }
-
-    @WebMethod
-    public Integer getGems(Integer user_id) {
-        if(validateApiKey()){
-            userGems_model userGemsModel = new userGems_model();
-            Integer gems = userGemsModel.getUserGems(user_id);
-            addLoggging("User with id " + user_id + " requested his gems");
-            return gems;
-        }
-        else {
-            addLoggging("User with id " + user_id + " tried to get his gems but failed because of invalid api key");
-            return -1;
-        }
-    }
-
-    public void  addLoggging(String description) {
-        MessageContext mctx = wsctx.getMessageContext();
-        HttpExchange req = (HttpExchange) mctx.get(JAXWSProperties.HTTP_EXCHANGE);
-        InetSocketAddress remote = req.getRemoteAddress();
-        InetAddress address = remote.getAddress();
-        String ip = address.getHostAddress();
-        String endpoint = req.getRequestURI().toString();
-        logging logging_service = new logging();
-        logging_service.addLogging(description, ip, endpoint);
-    }
-
-    public Boolean validateApiKey() {
-        String[] API_KEYS = { "toco_rest", "Postman", "toco_php"};
-        MessageContext mc = wsctx.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])) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-
-}