diff --git a/src/main/java/fucoin/AbstractNode.java b/src/main/java/fucoin/AbstractNode.java
index c57568bbbe64852303e2f3c05234ac4cd1781d89..9deab9659300d50e0befa9687364eda45906fce5 100644
--- a/src/main/java/fucoin/AbstractNode.java
+++ b/src/main/java/fucoin/AbstractNode.java
@@ -66,7 +66,13 @@ public abstract class AbstractNode extends UntypedActor implements Serializable
     }
 
     public void log(String string) {
-        System.out.println(getSelf().path().name() + ": " + string);
+        if (this instanceof AbstractWallet){
+            System.out.println("Yes: "+string);
+            ((AbstractWallet) this).log(string);
+        }else{
+            System.out.println("No: "+this.getClass());
+            System.out.println(getSelf().path().name() + ": " + string);
+        }
     }
 
 }
\ No newline at end of file
diff --git a/src/main/java/fucoin/Main.java b/src/main/java/fucoin/Main.java
index a0909bbaeeaaac76f7615ff39291dafaa63a4896..620d8d92293f50dab9c62d72a66ae7ee44856878 100644
--- a/src/main/java/fucoin/Main.java
+++ b/src/main/java/fucoin/Main.java
@@ -16,7 +16,7 @@ import java.util.List;
 
 public class Main {
 
-    private static int numberOfWallets = 4;
+    private static int numberOfWallets = 1;
 
     private static ActorSystem cSystem;
 
diff --git a/src/main/java/fucoin/actions/Action.java b/src/main/java/fucoin/actions/Action.java
index f51e4deb9be136d41ba6f8cf5aec3c4de83a1c88..7bb94e8e3884c9b26fff1d1f01ace868b173d530 100644
--- a/src/main/java/fucoin/actions/Action.java
+++ b/src/main/java/fucoin/actions/Action.java
@@ -15,9 +15,4 @@ public abstract class Action<T extends AbstractNode> {
 
     protected abstract void onAction(ActorRef sender, ActorRef self,
                                      UntypedActorContext context, T abstractNode);
-
-    public void log(String string) {
-        System.out.println(self.path().name() + ": " + string);
-    }
-
 }
diff --git a/src/main/java/fucoin/actions/join/ActionJoinAnswer.java b/src/main/java/fucoin/actions/join/ActionJoinAnswer.java
index 4a86c831e49d748af9e33fb323b2257594ad06c1..0f534a3e6edb22e595dd6e67e7d99919aab9a21b 100644
--- a/src/main/java/fucoin/actions/join/ActionJoinAnswer.java
+++ b/src/main/java/fucoin/actions/join/ActionJoinAnswer.java
@@ -16,7 +16,7 @@ public class ActionJoinAnswer extends ClientAction {
 
     protected void onAction(ActorRef sender, ActorRef self,
                             UntypedActorContext context, AbstractWallet wallet) {
-        log("Addressed to " + self.path().name() + " from " + sender.path().name() + ": someNeighbors:" + someNeighbors);
+        wallet.log("Addressed to " + self.path().name() + " from " + sender.path().name() + ": someNeighbors:" + someNeighbors);
         for (Entry<String, ActorRef> neighbor : someNeighbors.entrySet()) {
             wallet.addKnownNeighbor(neighbor.getKey(), neighbor.getValue());
         }
diff --git a/src/main/java/fucoin/actions/search/ActionSearchWalletReference.java b/src/main/java/fucoin/actions/search/ActionSearchWalletReference.java
index 950b7fdfd40caf1d8d74ec3dd81f28d4d9c54704..fe514e2802102260c18970ab58ce7e85f2e40324 100644
--- a/src/main/java/fucoin/actions/search/ActionSearchWalletReference.java
+++ b/src/main/java/fucoin/actions/search/ActionSearchWalletReference.java
@@ -23,7 +23,7 @@ public class ActionSearchWalletReference extends Search {
     @Override
     protected void onAction(ActorRef sender, ActorRef self,
                             UntypedActorContext context, AbstractWallet wallet) {
-        log(wallet.getKnownNeighbors() + "contains " + name + "?");
+        wallet.log(wallet.getKnownNeighbors() + "contains " + name + "?");
         ttl.add(self);
         ActionSearchWalletReferenceAnswer answer = null;
         if (this.name.equals(wallet.getName())) {
diff --git a/src/main/java/fucoin/actions/transaction/ActionCommitDistributedCommittedTransfer.java b/src/main/java/fucoin/actions/transaction/ActionCommitDistributedCommittedTransfer.java
index 0c3a622c69021b26c9ff6027927069cff5a95cb2..92df3ffdbafce5366480d970de6f3e6df717cbd4 100644
--- a/src/main/java/fucoin/actions/transaction/ActionCommitDistributedCommittedTransfer.java
+++ b/src/main/java/fucoin/actions/transaction/ActionCommitDistributedCommittedTransfer.java
@@ -39,7 +39,7 @@ public class ActionCommitDistributedCommittedTransfer extends ClientAction {
     @Override
     protected void onAction(ActorRef sender, ActorRef self,
                             UntypedActorContext context, AbstractWallet wallet) {
-        System.out.println(self.path().name() + ": ActionCommitDistributedCommittedTransfer is granted?" + granted);
+        wallet.log("ActionCommitDistributedCommittedTransfer is granted? " + granted);
         if (granted) {
 
             Integer sourceAmount = wallet.amounts.getOrDefault(source, 0);
@@ -56,9 +56,9 @@ public class ActionCommitDistributedCommittedTransfer extends ClientAction {
             }
 
         } else {
-            log("abort transaction with id" + id);
+            wallet.log("abort transaction with id" + id);
         }
-        log("wallet.amounts:" + wallet.amounts);
+        wallet.log("wallet.amounts:" + wallet.amounts);
     }
 
 }
diff --git a/src/main/java/fucoin/actions/transaction/ActionInvokeDistributedCommittedTransfer.java b/src/main/java/fucoin/actions/transaction/ActionInvokeDistributedCommittedTransfer.java
index 8279580bdf1d266afbb8efc346123380cfd6f4c1..b754ec9c0fb35479b42094a5e2ec3e862a981962 100644
--- a/src/main/java/fucoin/actions/transaction/ActionInvokeDistributedCommittedTransfer.java
+++ b/src/main/java/fucoin/actions/transaction/ActionInvokeDistributedCommittedTransfer.java
@@ -21,7 +21,7 @@ public class ActionInvokeDistributedCommittedTransfer extends CoordinatorTransac
     @Override
     protected void onAction(ActorRef sender, ActorRef self,
                             UntypedActorContext context, SuperVisorImpl superVisor) {
-        log("invoke transaction " + source.path().name() +
+        superVisor.log("invoke transaction " + source.path().name() +
                 " sends " + amount +
                 " to " + target.path().name());
 
diff --git a/src/main/java/fucoin/actions/transaction/ActionInvokeSentMoney.java b/src/main/java/fucoin/actions/transaction/ActionInvokeSentMoney.java
index 688b3f778329f33ffd11a69383a535be33976d47..6f3bd3e2817b47e8d3df213f150fa45a5efe04bf 100644
--- a/src/main/java/fucoin/actions/transaction/ActionInvokeSentMoney.java
+++ b/src/main/java/fucoin/actions/transaction/ActionInvokeSentMoney.java
@@ -18,7 +18,7 @@ public class ActionInvokeSentMoney extends Transaction {
     @Override
     protected void onAction(ActorRef sender, ActorRef self,
                             UntypedActorContext context, AbstractWallet wallet) {
-        log(wallet.getKnownNeighbors() + "");
+        wallet.log(wallet.getKnownNeighbors() + "");
         if (wallet.getKnownNeighbors().containsKey(name)) {
             wallet.getRemoteSuperVisorActor().tell(
                     new ActionInvokeDistributedCommittedTransfer(self, wallet.getKnownNeighbors().get(name), amount), sender);
diff --git a/src/main/java/fucoin/actions/transaction/ActionPrepareDistributedCommittedTransferAnswer.java b/src/main/java/fucoin/actions/transaction/ActionPrepareDistributedCommittedTransferAnswer.java
index 6c0c473d1afa9f8c8f3113dd2404bbeea89c8590..7fc3c7960f882a348bbc13b879ada6621bd603d2 100644
--- a/src/main/java/fucoin/actions/transaction/ActionPrepareDistributedCommittedTransferAnswer.java
+++ b/src/main/java/fucoin/actions/transaction/ActionPrepareDistributedCommittedTransferAnswer.java
@@ -27,14 +27,14 @@ public class ActionPrepareDistributedCommittedTransferAnswer extends Coordinator
 	@Override
 	protected void onAction(ActorRef sender, ActorRef self,
 			UntypedActorContext context, SuperVisorImpl superVisor) {
-		log(""+superVisor.getKnownNeighbors());
-		log("granted?"+granted);
+		superVisor.log(""+superVisor.getKnownNeighbors());
+		superVisor.log("granted?"+granted);
 		DistributedCommittedTransferRequest request = superVisor.getRequest(id);
 		if(granted){
 			if(request==null)//unknown DistributedCommittedTransferRequest ignore
 				return;
 			int newCount = request.addPositiveAnswer(sender);
-			System.out.println(newCount+" have agreed on request"+id);
+
 			if(newCount == superVisor.getKnownNeighbors().size()){
 				ActionCommitDistributedCommittedTransfer acdct = new ActionCommitDistributedCommittedTransfer(source,target,amount,true,timestamp,id);
 				for(ActorRef neighbor : request.getAnswers()){
diff --git a/src/main/java/fucoin/gui/SuperVisorGuiControl.java b/src/main/java/fucoin/gui/SuperVisorGuiControl.java
index d27cf2c7fc32540e0b37df3ff1a1e61645b7da39..bea5e7ae5004ddbd003beb1b5fe82dbbdb3620b1 100644
--- a/src/main/java/fucoin/gui/SuperVisorGuiControl.java
+++ b/src/main/java/fucoin/gui/SuperVisorGuiControl.java
@@ -5,4 +5,6 @@ public interface SuperVisorGuiControl {
      * Call from SuperVisorImpl after poison pill or kill
      */
     void onLeave();
+
+    void log(String message);
 }
diff --git a/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java b/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java
index 1ca6922eea794d6c728594a6757d36e19891812a..992a851db10c0378acf31ea26f6b93ed48b756d4 100644
--- a/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java
+++ b/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java
@@ -59,4 +59,11 @@ public class SuperVisorGuiControlImpl implements SuperVisorGuiControl {
     public void onLeave() {
         frame.dispose();
     }
+
+    @Override
+    public void log(String message) {
+        // One day, we may have a server log GUI as well..
+        // Until then, we just print it to the console
+        System.out.println(message);
+    }
 }
diff --git a/src/main/java/fucoin/supervisor/SuperVisorImpl.java b/src/main/java/fucoin/supervisor/SuperVisorImpl.java
index 4f708ef42e33cddb0ac4f7a59c0dd0b71dfb9653..9249ec47c1a745fd8699da8007c27131fbe3235b 100644
--- a/src/main/java/fucoin/supervisor/SuperVisorImpl.java
+++ b/src/main/java/fucoin/supervisor/SuperVisorImpl.java
@@ -69,7 +69,6 @@ public class SuperVisorImpl extends AbstractNode {
 
     public void addDistributedCommitedTransferRequest(
             DistributedCommittedTransferRequest request) {
-        System.out.println("Add request to queue: " + request.getId());
         requestQueue.put(request.getId(), request);
     }
 
@@ -116,4 +115,12 @@ public class SuperVisorImpl extends AbstractNode {
     public void setAmountTableModel(AmountTableModel amountTableModel) {
         this.amountTableModel = amountTableModel;
     }
+
+    public void log(String message){
+        if (this.gui != null){
+            this.gui.log(message);
+        } else {
+            System.out.println(message);
+        }
+    }
 }