diff --git a/res/ui/transferDialog.ui b/res/ui/transferDialog.ui
index 76f411f5a21db20a17cc659629d577022497add9..480d297ff96301ea4ee8a943c0b79aa2959c91d5 100644
--- a/res/ui/transferDialog.ui
+++ b/res/ui/transferDialog.ui
@@ -32,7 +32,7 @@
         <item>
          <widget class="QLineEdit" name="edit_keyFingerprint">
           <property name="inputMask">
-           <string>&gt;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN</string>
+           <string/>
           </property>
           <property name="text">
            <string/>
@@ -186,7 +186,7 @@
            <number>0</number>
           </property>
           <item>
-           <widget class="QLineEdit" name="lineEdit">
+           <widget class="QLineEdit" name="edit_message">
             <property name="placeholderText">
              <string>A message</string>
             </property>
diff --git a/src/cutecoin/gui/transferMoneyDialog.py b/src/cutecoin/gui/transferMoneyDialog.py
index 7af976b2f614bbdb699fcd348b96283e7a52bda4..442941e195ef4d251cd73e114b70ad756c5fe43a 100644
--- a/src/cutecoin/gui/transferMoneyDialog.py
+++ b/src/cutecoin/gui/transferMoneyDialog.py
@@ -62,24 +62,24 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog):
         pass
 
     def accept(self):
-        sentCoins = self.listView_coinsSent.model().coins
-        receiver = None
+        sentCoins = self.listView_coinsSent.model().toString()
+        recipient = None
 
-        if self.radio_keyFingerprint.toggled():
-            receiver = Person(self.edit_keyFingerprint.text(), "", "")
+        if self.radio_keyFingerprint.isChecked():
+            recipient = Person("", self.edit_keyFingerprint.text(), "")
         else:
             #TODO: Manage contacts
-            receiver = Person(self.edit_keyFingerprint.text(), "", "")
+            recipient = Person("", self.edit_keyFingerprint.text(), "")
 
-        if self.radio_nodeAddress.toggled():
-            node = Node(self.edit_nodeAddress, self.edit_port)
+        if self.radio_nodeAddress.isChecked():
+            node = Node(self.edit_nodeAddress.text(), int(self.edit_port.text()))
         else:
             #TODO: Manage trusted nodes
-            node = Node(self.edit_nodeAddress, self.edit_port)
+            node = Node(self.edit_nodeAddress.text(), int(self.edit_port.text()))
 
+        message = self.edit_message.text()
         #TODO: Transfer money, and validate the window if no error happened
-
-        self.sender.transferCoins(sentCoins)
+        print(self.sender.transferCoins(node, recipient, sentCoins, message))
 
     def changeDisplayedWallet(self, index):
         wallet = self.sender.wallets.walletsList[index]
@@ -91,5 +91,16 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog):
         walletCoinsModel = CoinsListModel(list(wallet.coins))
         self.listView_wallet.setModel(walletCoinsModel)
 
+    def recipientModeChanged(self, fingerprintToggled):
+        self.edit_keyFingerprint.setEnabled(fingerprintToggled)
+        self.comboBox_contact.setEnabled(not fingerprintToggled)
+
+    def transferModeChanged(self, nodeAddressToggled):
+        self.edit_nodeAddress.setEnabled(nodeAddressToggled)
+        self.comboBox_trustedNode.setEnabled(not nodeAddressToggled)
+
+
+
+
 
 
diff --git a/src/cutecoin/models/account/__init__.py b/src/cutecoin/models/account/__init__.py
index 0141967e471d2e821eb7f5f73e0991c74d2c5736..e01f9bb8aea49e04a510e8236721b4e49dbf4af4 100644
--- a/src/cutecoin/models/account/__init__.py
+++ b/src/cutecoin/models/account/__init__.py
@@ -111,6 +111,10 @@ class Account(object):
             issuance = ucoin.wrappers.transactions.Issue(self.keyFingerprint(), community.amendmentNumber(), coins, keyId=self.pgpKeyId)
             return issuance()
 
+    def transferCoins(self, node, recipient, coins, message):
+        transfer = ucoin.wrappers.transactions.Transfer(self.keyFingerprint(), recipient.fingerprint, coins, message, keyid=self.pgpKeyId, server=node.server, port=node.port)
+        return transfer()
+
     def jsonify(self):
         data = {'name' : self.name,
                 'pgpKeyId' : self.pgpKeyId,
diff --git a/src/cutecoin/models/coin/listModel.py b/src/cutecoin/models/coin/listModel.py
new file mode 100644
index 0000000000000000000000000000000000000000..3b7d973594c9d4e345539467e2b220602fcce5ee
--- /dev/null
+++ b/src/cutecoin/models/coin/listModel.py
@@ -0,0 +1,37 @@
+'''
+Created on 8 févr. 2014
+
+@author: inso
+'''
+
+from PyQt5.QtCore import QAbstractListModel, Qt
+
+class CoinsListModel(QAbstractListModel):
+    '''
+    A Qt abstract item model to display communities in a tree
+    '''
+    def __init__(self, coins, parent=None):
+        '''
+        Constructor
+        '''
+        super(CoinsListModel, self).__init__(parent)
+        self.coins = coins
+
+    def rowCount(self ,parent):
+        return len(self.coins)
+
+    def data(self,index,role):
+        if role == Qt.DisplayRole:
+            row=index.row()
+            value = str(self.coins[row].value())
+            return value
+
+    def flags(self,index):
+        return Qt.ItemIsSelectable | Qt.ItemIsEnabled
+
+    def toString(self):
+        coinsList = []
+        for c in self.coins:
+            coinsList.append(c.getId())
+        coinsStr = ",".join(coinsList)
+        return coinsStr
\ No newline at end of file
diff --git a/src/cutecoin/models/community/membersListModel.py b/src/cutecoin/models/community/membersListModel.py
index 70fdc0f4b8d3f472bda9cfebed66d3940701a9b8..b017ba32c9806c9f0bb8545a3fec598835f319ea 100644
--- a/src/cutecoin/models/community/membersListModel.py
+++ b/src/cutecoin/models/community/membersListModel.py
@@ -19,7 +19,7 @@ class MembersListModel(QAbstractListModel):
         fingerprints = community.membersFingerprints()
         self.members = []
         for f in fingerprints:
-            self.members.append(Person.create(f, community))
+            self.members.append(Person.lookup(f, community))
 
     def rowCount(self ,parent):
         return len(self.members)
diff --git a/src/cutecoin/models/transaction/__init__.py b/src/cutecoin/models/transaction/__init__.py
index 6f5908b9d5aeef425a18bbbbac5e3106bbd92534..9f773c9a362a98db13cf40e160f07734250ca91c 100644
--- a/src/cutecoin/models/transaction/__init__.py
+++ b/src/cutecoin/models/transaction/__init__.py
@@ -42,11 +42,9 @@ class Transfer(Transaction):
     def __init__(self):
         super(Transfer).__init__()
 
-    def getReceivedText(self):
+    def getText(self):
         return str(self.value()) + " " + self.currency() + " from " + self.sender.name
 
-    def getSentText(self):
-        return str(self.value()) + " " + self.currency() + " from " + self.recipient.name
 
 
 class Issuance(Transaction):
diff --git a/src/cutecoin/models/transaction/factory.py b/src/cutecoin/models/transaction/factory.py
index e0f335fe875694f84337a32c524e97aa30c4cf5c..dbf6c5277305be45b56adc2e973c18309dde2251 100644
--- a/src/cutecoin/models/transaction/factory.py
+++ b/src/cutecoin/models/transaction/factory.py
@@ -22,7 +22,7 @@ def createTransaction(senderFingerprint, increment, community):
     if transaction != None:
         transaction.increment = increment
         transaction.community = community
-        transaction.sender = Person.create(senderFingerprint, community)
-        transaction.recipient = Person.create(ucoinTransaction['recipient'], community)
+        transaction.sender = Person.lookup(senderFingerprint, community)
+        transaction.recipient = Person.lookup(ucoinTransaction['recipient'], community)
 
     return transaction
diff --git a/src/cutecoin/models/transaction/receivedListModel.py b/src/cutecoin/models/transaction/receivedListModel.py
index dcfd8fcbddca25887c2e9d090e7a0347e436e480..96628d002a8d404c39639744f3faabb4ef512059 100644
--- a/src/cutecoin/models/transaction/receivedListModel.py
+++ b/src/cutecoin/models/transaction/receivedListModel.py
@@ -26,7 +26,7 @@ class ReceivedListModel(QAbstractListModel):
 
         if role == Qt.DisplayRole:
             row=index.row()
-            value = self.transactions[row].getReceivedText()
+            value = self.transactions[row].getText()
             return value
 
     def flags(self,index):
diff --git a/src/cutecoin/models/transaction/sentListModel.py b/src/cutecoin/models/transaction/sentListModel.py
index 10cedd1ec6c1b398fce242c7835f79a10e5dc90f..52218ee1dd53c297460c2194cac5ddc8792dbe55 100644
--- a/src/cutecoin/models/transaction/sentListModel.py
+++ b/src/cutecoin/models/transaction/sentListModel.py
@@ -26,7 +26,7 @@ class SentListModel(QAbstractListModel):
 
         if role == Qt.DisplayRole:
             row=index.row()
-            value = self.transactions[row].getSendText()
+            value = self.transactions[row].getText()
             return value
 
     def flags(self,index):