diff --git a/res/ui/addCommunityDialog.ui b/res/ui/addCommunityDialog.ui
index 520b3d138069728e9662ac74a4bce5a04e8a2f30..a7f25323b5f8e9139cd06d6ec19acb5b038f24b9 100644
--- a/res/ui/addCommunityDialog.ui
+++ b/res/ui/addCommunityDialog.ui
@@ -24,12 +24,12 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout_3">
       <item>
-       <widget class="QTableView" name="communitiesTable"/>
+       <widget class="QTreeView" name="communitiesList"/>
       </item>
       <item>
        <layout class="QHBoxLayout" name="horizontalLayout_3">
         <item>
-         <widget class="QLineEdit" name="lineEdit">
+         <widget class="QLineEdit" name="serverEdit">
           <property name="text">
            <string/>
           </property>
@@ -39,24 +39,20 @@
          </widget>
         </item>
         <item>
-         <widget class="QLineEdit" name="lineEdit_2">
-          <property name="text">
-           <string/>
+         <widget class="QSpinBox" name="portBox">
+          <property name="minimum">
+           <number>1025</number>
           </property>
-          <property name="placeholderText">
-           <string>Port</string>
+          <property name="maximum">
+           <number>99999</number>
           </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QCheckBox" name="checkBox">
-          <property name="text">
-           <string>Auth</string>
+          <property name="value">
+           <number>8081</number>
           </property>
          </widget>
         </item>
         <item>
-         <widget class="QPushButton" name="removeCommunity">
+         <widget class="QPushButton" name="addButton">
           <property name="text">
            <string>Add</string>
           </property>
@@ -113,5 +109,24 @@
     </hint>
    </hints>
   </connection>
+  <connection>
+   <sender>addButton</sender>
+   <signal>clicked()</signal>
+   <receiver>AddCommunityDialog</receiver>
+   <slot>addCommunity()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>337</x>
+     <y>236</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>199</x>
+     <y>149</y>
+    </hint>
+   </hints>
+  </connection>
  </connections>
+ <slots>
+  <slot>addCommunity()</slot>
+ </slots>
 </ui>
diff --git a/src/cutecoin/gui/addAccountDialog.py b/src/cutecoin/gui/addAccountDialog.py
index 661cee2b77b33acc91afecf7c4f0a799958d9d8c..9e8a86c93b545c7dcbd6c3235d230ea792b5361e 100644
--- a/src/cutecoin/gui/addAccountDialog.py
+++ b/src/cutecoin/gui/addAccountDialog.py
@@ -6,6 +6,9 @@ Created on 2 févr. 2014
 from cutecoin.gen_resources.addAccountDialog_uic import Ui_AddAccountDialog
 from PyQt5.QtWidgets import QDialog
 from cutecoin.gui.addCommunityDialog import AddCommunityDialog
+from cutecoin.models.community import CommunitiesManager
+import gnupg
+
 
 class AddAccountDialog(QDialog, Ui_AddAccountDialog):
     '''
@@ -20,9 +23,22 @@ class AddAccountDialog(QDialog, Ui_AddAccountDialog):
         # Set up the user interface from Designer.
         super(AddAccountDialog, self).__init__()
         self.setupUi(self)
-        print("stiio")
+
+
+        self.dialog = AddCommunityDialog()
+
+    def setData(self):
+        self.communitiesManager = CommunitiesManager()
+        gpg = gnupg.GPG()
+        availableKeys = gpg.list_keys(True)
+        for key in availableKeys:
+            self.pgpkeyList.addItem(key['uids'][0])
 
     def openAddCommunityDialog(self):
-        dialog = AddCommunityDialog()
-        dialog.show()
+        self.dialog.setCommunitiesManager(self.communitiesManager)
+        self.dialog.exec_()
+
+    def validAddCommunityDialog(self):
+        # TODO Show items in tree
+        pass
 
diff --git a/src/cutecoin/gui/addCommunityDialog.py b/src/cutecoin/gui/addCommunityDialog.py
index 8598d3960dc7bef21fc40c1bd48d7dbb9fb19e0a..b0d622c632a15b6bc748695a0afb5c77104153e2 100644
--- a/src/cutecoin/gui/addCommunityDialog.py
+++ b/src/cutecoin/gui/addCommunityDialog.py
@@ -5,6 +5,10 @@ Created on 2 févr. 2014
 '''
 from cutecoin.gen_resources.addCommunityDialog_uic import Ui_AddCommunityDialog
 from PyQt5.QtWidgets import QDialog
+from PyQt5.QtWidgets import QListWidgetItem
+from cutecoin.models.community import CommunitiesManager, Community
+from cutecoin.models.node import MainNode
+import ucoinpy as ucoin
 
 class AddCommunityDialog(QDialog, Ui_AddCommunityDialog):
     '''
@@ -19,3 +23,15 @@ class AddCommunityDialog(QDialog, Ui_AddCommunityDialog):
         super(AddCommunityDialog, self).__init__()
         self.setupUi(self)
 
+    def setCommunitiesManager(self, communitiesManager):
+        self.communitiesManager = communitiesManager
+
+    def addCommunity(self):
+        '''
+        Add community slot
+        '''
+        server = self.serverEdit.text()
+        port = self.portBox.value()
+        self.communitiesManager.addCommunity(MainNode(server, port))
+
+
diff --git a/src/cutecoin/gui/mainWindow.py b/src/cutecoin/gui/mainWindow.py
index 9a5683118f004987b0f692e6f3dbb4172b055da5..945cb2d63cae055714ba575d63066f43f59e00f5 100644
--- a/src/cutecoin/gui/mainWindow.py
+++ b/src/cutecoin/gui/mainWindow.py
@@ -23,6 +23,5 @@ class MainWindow(QMainWindow, Ui_MainWindow):
 
     def openAddAccountDialog(self):
         dialog = AddAccountDialog()
-        print("shoow")
-        dialog.show()
-        print("shoow2")
\ No newline at end of file
+        dialog.setData()
+        dialog.exec_()
\ No newline at end of file
diff --git a/src/cutecoin/models/account.py b/src/cutecoin/models/account.py
index 6d9a4a46a3cd2142d16edbdf76307b32238410e7..f334ea4cffecfbdfdf70ef5c723c61750d305e47 100644
--- a/src/cutecoin/models/account.py
+++ b/src/cutecoin/models/account.py
@@ -11,13 +11,13 @@ class Account(object):
     classdocs
     '''
 
-    def __init__(self, pgpKey, name, communities):
+    def __init__(self, pgpKey, name, communityManager):
         '''
         Constructor
         '''
         self.pgpKey = pgpKey
         self.name = name
-        self.communities = communities
+        self.communityManager = communityManager
         self.transactionNodes = []
         self.trustableNodes = []
         self.wallets = []
diff --git a/src/cutecoin/models/community.py b/src/cutecoin/models/community.py
index 1e085d070f82fd47fc2513cd7be512b567b3056e..4ad3bcf1370a711fe915fa7538a2eb53bed0675a 100644
--- a/src/cutecoin/models/community.py
+++ b/src/cutecoin/models/community.py
@@ -10,14 +10,14 @@ class Community(object):
     '''
     classdocs
     '''
-
-
     def __init__(self, mainNode, currency):
         '''
         Constructor
         '''
-        self.knowNodes = []
-        self.knowNodes.append(mainNode)
+        self.knownNodes = []
+        self.knownNodes.append(mainNode)
+
+        self.currency = currency
 
     def members(self):
         '''
@@ -27,13 +27,15 @@ class Community(object):
         # TODO : Try connecting with nodes of the list
         # if the first fails
         # Maybe create a method
-        ucoin.settings['server'] = self.knowNodes[0].address
+        ucoin.settings['server'] = self.knowNodes[0].server
         ucoin.settings['port'] = self.knowNodes[0].port
-        ucoin.settings['auth'] = self.knowNodes[0].auth
 
-        members = ucoin.hdc.amendments.view.Members( ucoin.hdc.amendments.Current )
+        members = ucoin.hdc.amendments.view.Members().get()
         return members
 
+    def nodes(self):
+        return self.knownNodes
+
 class CommunitiesManager(object):
     '''
     classdocs
@@ -49,11 +51,11 @@ class CommunitiesManager(object):
             if com.currency == currency:
                 return com
 
-    def addCommunity(self, node):
-        ucoin.settings['server'] = node.address
-        ucoin.settings['port'] = node.port
-        ucoin.settings['auth'] = node.auth
-
-        currentAmendment = ucoin.hdc.amendments.Current.get(self)
+    def addCommunity(self, mainNode):
+        ucoin.settings['server'] = mainNode.server
+        ucoin.settings['port'] = mainNode.port
+        mainNode.downstreamPeers()
+        currentAmendment = ucoin.hdc.amendments.Promoted().get()
         currency = currentAmendment['currency']
-        self.communities.append(Community(node), currency)
+        if self.getCommunity(currency) == None:
+            self.communities.append(Community(mainNode, currency))
diff --git a/src/cutecoin/models/node.py b/src/cutecoin/models/node.py
index 4199091cf90827c801b8ea45815f22c631277058..69435cb1bfb47a189350f72cc3268da268a4f891 100644
--- a/src/cutecoin/models/node.py
+++ b/src/cutecoin/models/node.py
@@ -4,16 +4,31 @@ Created on 1 févr. 2014
 @author: inso
 '''
 
+import ucoinpy as ucoin
+
 class Node(object):
     '''
     classdocs
     '''
-
-
-    def __init__(self, server, port, auth):
+    def __init__(self, server, port):
         '''
         Constructor
         '''
         self.server = server
         self.port = port
-        self.auth = auth
+
+
+    def __eq__(self, other):
+        return ( self.server == other.server and self.port == other.port )
+
+class MainNode(Node):
+
+    def downstreamPeers(self):
+        ucoin.settings['server'] = self.server
+        ucoin.settings['port'] = self.port
+
+        peers = []
+        for peer in ucoin.ucg.peering.peers.DownStream().get()['peers']:
+            node = Node(peer['ipv4'], peer['port'])
+            print(node.server + ":" + node.port)
+            peers.append(node)