diff --git a/README.md b/README.md
index 725b10d..4ac9893 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,13 @@ Web server for WebDAV resources
## Architecture
+
+
### File streaming
+
+## Dependencies
+
+* Garage (https://hub.docker.com/r/dxflrs/garage)
+* PostgreSQL
diff --git a/assets/components.png b/assets/components.png
new file mode 100644
index 0000000..eab0be6
Binary files /dev/null and b/assets/components.png differ
diff --git a/assets/components.puml b/assets/components.puml
new file mode 100644
index 0000000..6682460
--- /dev/null
+++ b/assets/components.puml
@@ -0,0 +1,29 @@
+@startuml
+
+actor "Client"
+
+agent "Pathfinder"
+
+agent "Sentinel"
+database "Session PostgreSQL"
+"Sentinel" -- "Session PostgreSQL"
+
+boundary "Mailman"
+cloud "Mail Service"
+"Mailman" -- "Mail Service"
+
+agent "Keeper"
+database "Account PostgreSQL"
+"Keeper" -- "Account PostgreSQL"
+
+agent "Fileye"
+cloud "S3 storage"
+"Fileye" -- "S3 storage"
+
+"Client" ~~ "Pathfinder"
+"Pathfinder" ~~ "Sentinel"
+"Pathfinder" ~~ "Keeper"
+"Pathfinder" ~~ "Fileye"
+"Pathfinder" ~~ "Mailman"
+
+@enduml
diff --git a/assets/components.svg b/assets/components.svg
new file mode 100644
index 0000000..930c4c4
--- /dev/null
+++ b/assets/components.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/session.puml b/assets/session.puml
new file mode 100644
index 0000000..64449d7
--- /dev/null
+++ b/assets/session.puml
@@ -0,0 +1,55 @@
+@startuml
+
+group Register
+Client -> Pathfinder : E-Mail + Login form
+Pathfinder -> Keeper : Save account info
+alt No errors
+Keeper -> Pathfinder : E-Mail address
+Pathfinder -> Mailman : Send sign-in url with TOKEN
+Pathfinder -> Client : OK with Check e-mail
+else Invalid data
+Keeper -> Pathfinder : Failed
+Pathfinder -> Client : BAD_REQUEST with errors
+end
+end
+
+group Sign In (First step)
+Client -> Pathfinder : Send Login form
+Pathfinder -> Keeper : Load user profile
+alt Valid
+Keeper -> Pathfinder : User e-mail
+Pathfinder -> Mailman : Send sign-in url with TOKEN
+Pathfinder -> Client : OK with Check e-mail
+else Invalid
+Keeper -> Pathfinder : Not found
+Pathfinder -> Client : OK with Check e-mail
+end
+end
+
+group Sign In (Second step)
+Client -> Pathfinder : Visit sign-in url from e-mail
+Pathfinder -> Mailman : Check TOKEN
+alt Valid token
+Mailman -> Pathfinder : Found
+Pathfinder -> Sentinel : Generate JWT
+Sentinel -> Pathfinder : JWT
+Pathfinder -> Client : FOUND with JWT
+else Invalid token
+Mailman -> Pathfinder : Not found
+Pathfinder -> Client : UNAUTHORIZED
+end
+end
+
+group Check session
+Client -> Pathfinder : Validate JWT
+Pathfinder -> Sentinel : Check JWT
+alt Valid JWT
+Sentinel -> Pathfinder : Valid
+Pathfinder -> Client : FOUND
+else Invalid JWT
+Sentinel -> Pathfinder : Invalid
+Pathfinder -> Client : UNAUTHORIZED
+end
+end
+
+@enduml
diff --git a/assets/session.svg b/assets/session.svg
new file mode 100644
index 0000000..db8dfc4
--- /dev/null
+++ b/assets/session.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/stream.puml b/assets/stream.puml
index a691133..1dd6515 100644
--- a/assets/stream.puml
+++ b/assets/stream.puml
@@ -3,7 +3,6 @@
Client -> Pathfinder
Pathfinder -> Sentinel : Check authorization
-Sentinel -> LoggedState : Logged
alt User Authorized
Sentinel -> Pathfinder : Authorized
Pathfinder -> Fileye : Open stream
diff --git a/assets/stream.svg b/assets/stream.svg
index 7a921ff..404dfbd 100644
--- a/assets/stream.svg
+++ b/assets/stream.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file