diff --git a/doc/uml/api.png b/doc/uml/api.png
index f557d71281f747f665355c62849852fd427b0826..3a81019dba4da9fba38e2b7e1fab6f4097e17177 100644
Binary files a/doc/uml/api.png and b/doc/uml/api.png differ
diff --git a/doc/uml/backend.pu b/doc/uml/backend.pu
new file mode 100644
index 0000000000000000000000000000000000000000..6fbdcb723a2a6cb77e39a66b5059346db853f00e
--- /dev/null
+++ b/doc/uml/backend.pu
@@ -0,0 +1,242 @@
+@startuml
+
+
+class Identity << (D,orchid) >> {
+    currency: str (FK)
+    uid: str
+    pubkey: str (PK)
+    blockstamp: BlockUID
+    timestamp: int
+    signature: str
+    member: bool
+    membership_buid: BlockUID
+    membership_timestamp: int
+}
+
+class Certification << (D,orchid) >> {
+    currency: str (FK)
+    certifier: str
+    certified: str
+    blockstamp: BlockUID
+    timestamp: int
+    signature: str
+}
+
+class Transaction  << (D,orchid) >> {
+    currency: str (FK)
+    blockstamp: str
+    locktime: int
+    issuer: str
+    recipient: str
+    amount: int
+    comment: str
+    sha_hash: str (PK)
+}
+
+class Community  << (D,orchid) >> {
+    profile: str (FK)
+    pubkey: str (FK)
+    currency: str (PK)
+    c: float
+    dt: int
+    ud0: int
+    sig_period: int
+    sig_stock: int
+    sig_window: int
+    sig_validity: int
+    sig_qty: int
+    xpercent: float
+    ms_validity: int
+    step_max: int
+    median_time_blocks: int
+    avg_gen_time: int
+    dt_diff_eval: int
+    blocks_rot: int
+    percent_rot: float
+}
+
+class Blockchain  << (D,orchid) >> {
+    currency: str (PK)
+    current_buid: BlockUID
+    nb_members: int
+    mass: int
+    median_time: int
+    last_ud: int
+    last_ud_base: int
+    mass_minus_1: int
+    ud_minus_1: int
+    ud_minus_1_base: int
+}
+
+class Node  << (D,orchid) >> {
+    currency: str (FK)
+    endpoints: str
+    uid: str
+    pubkey: str (PK)
+    current_buid: BlockUID
+    previous_buid: BlockUID
+    state: int
+    software: str
+    version: str
+    merkle_nodes: dict
+}
+
+class Key  << (D,orchid) >> {
+    pubkey: str (PK)
+    salt: str
+}
+
+class UserParameters  << (D,orchid) >> {
+    profile: str (PK)
+    lang: str
+    ref: 0
+    expert_mode: bool,
+    digits_after_comma: int
+    maximized: bool
+    notifications: bool
+    enable_proxy: bool
+    proxy_type: int
+    proxy_address: str
+    proxy_port: 8080: int
+    international_system_of_units: bool
+    auto_refresh: bool
+    forgetfulness: bool
+}
+
+
+
+
+
+
+
+
+class IdentitiesRepo  << (R,orange) >>  {
+    Commit()
+    Update()
+    Save()
+    Drop()
+}
+IdentitiesRepo "1" --* "*" Identity
+
+class CertificationRepo  << (R,orange) >> {
+    Commit()
+    Update()
+    Save()
+    Drop()
+}
+CertificationRepo "1" --* "*" Certification
+
+class TransactionRepo << (R,orange) >>  {
+    Commit()
+    Update()
+    Save()
+    Drop()
+}
+TransactionRepo "1" --* "*" Transaction
+
+class CommunityRepo << (R,orange) >>  {
+    Commit()
+    Update()
+    Save()
+    Drop()
+}
+CommunityRepo "1" --* "*" Community
+
+class BlockchainRepo << (R,orange) >>  {
+    Create()
+    Update()
+    Save()
+    Drop()
+}
+BlockchainRepo "1" --* "*" Blockchain
+
+class NodeRepo << (R,orange) >>   {
+    Create()
+    Update()
+    Save()
+    Drop()
+}
+NodeRepo "1" --* "*" Node
+
+class KeyRepo << (R,orange) >>  {
+    Create()
+    Update()
+    Save()
+    Drop()
+}
+KeyRepo "1" --* "*" Key
+
+class UserParametersRepo << (R,orange) >> {
+    Create()
+    Update()
+    Save()
+    Drop()
+}
+UserParametersRepo "1" --* "*" UserParameters
+
+
+
+
+
+
+
+
+
+class ProfileService << (S,cyan) >>  {
+    add_connection()
+    remove_connection()
+
+}
+ProfileService "1" --> "1" UserParameters
+ProfileService "*" --> "1" UserParametersRepo
+
+class AccountService << (S,cyan) >>  {
+    send_transaction()
+    send_certification()
+    send_membership()
+    send_identity()
+    send_revokation()
+}
+AccountService "1" --> "1" Key
+AccountService "*" --> "1" KeyRepo
+
+class TransactionsService << (S,cyan) >>  {
+    refresh_transactions()
+    rollback_transactions()
+}
+TransactionsService "1" --> "*" Transaction
+TransactionsService "*" --> "1" TransactionRepo
+
+class RegistryService << (S,cyan) >> {
+    get_identity()
+    get_certifiers_of()
+    get_certified_by()
+}
+RegistryService "1" --> "*" Identity
+RegistryService "1" --> "*" Certification
+RegistryService "*" --> "1" IdentitiesRepo
+RegistryService "*" --> "1" CertificationRepo
+
+class NetworkService << (S,cyan) >>  {
+    discover_network()
+}
+NetworkService "1" --> "*" Node
+NetworkService "*" --> "1" NodeRepo
+
+class BlockchainService  << (S,cyan) >>  {
+    receive_block()
+}
+BlockchainService "1" --> "1" Blockchain
+BlockchainService "1" --> "1" Community
+BlockchainService "*" --> "1" BlockchainRepo
+BlockchainService "*" --> "1" CommunityRepo
+
+package API {
+    class BMAService << (S,cyan) >>  {
+        get()
+        post()
+        broadcast()
+    }
+}
+
+@enduml
\ No newline at end of file
diff --git a/doc/uml/core-classes.png b/doc/uml/core-classes.png
index 54e0d69e92bc3200fa7bcd1bc6d2458cad95ff81..c240a11d209c9ba14f4a09b21f32764a2d0b4f81 100644
Binary files a/doc/uml/core-classes.png and b/doc/uml/core-classes.png differ
diff --git a/doc/uml/cutecoin.png b/doc/uml/cutecoin.png
index 417230847dec853471dc5e7a618273d5be5e898b..a696823d4d233136f33aea233b724520d3dd3c3a 100644
Binary files a/doc/uml/cutecoin.png and b/doc/uml/cutecoin.png differ
diff --git a/doc/uml/gui-classes.png b/doc/uml/gui-classes.png
index e00da1f229639c06e0ee5f201ea8d1d7e487f111..50e4bf2e1e27896ff3c5f36c72dca940f781589c 100644
Binary files a/doc/uml/gui-classes.png and b/doc/uml/gui-classes.png differ
diff --git a/doc/uml/models-classes.png b/doc/uml/models-classes.png
index 5833c6ecaf2c4c1b57601a5c682bdb941c2a61ea..3ef003769f0760c9afc07286a52a2b5335171bbf 100644
Binary files a/doc/uml/models-classes.png and b/doc/uml/models-classes.png differ
diff --git a/doc/uml/network.png b/doc/uml/network.png
index c31386d981219956b30d8dc291e48fd9d69c4745..e81d0b329a732f21d17e3aaa4ca01653a57227c1 100644
Binary files a/doc/uml/network.png and b/doc/uml/network.png differ
diff --git a/doc/uml/requests.png b/doc/uml/requests.png
index 85339a6ae644809ea4836ee4c109da64144f3e71..b5ea60e12381b00694c690c6570cc04389d43ce4 100644
Binary files a/doc/uml/requests.png and b/doc/uml/requests.png differ
diff --git a/doc/uml/tx_lifecycle.png b/doc/uml/tx_lifecycle.png
index 7f7102c0cac56b9a5aafa90498611f8caa9df429..4e4f73e1421db6aaf76b2e0438582ae009c025aa 100644
Binary files a/doc/uml/tx_lifecycle.png and b/doc/uml/tx_lifecycle.png differ