diff --git a/README.md b/README.md
index 49a3aea..213bb15 100644
--- a/README.md
+++ b/README.md
@@ -2,17 +2,31 @@
An online assembly editor and debugger for the x86-64 architecture, powered by a Wasm port of the Blink x86-64-linux emulator.
Online at https://x64.halb.it
-The quickest way to run, debug, and share assembly snippets for a wide range of popular assemblers, including GNU binutils, Fasm, and Nasm.
-
-# Screenshots
+The quickest way to run, debug, and share assembly snippets for a wide range of popular assemblers, like GNU binutils, Fasm, and Nasm.
-The project is composed of two elements:
-- `emscripten_blink` a fork of the [blink](https://github.com/jart/blink/) x86-64 emulator, compiled to WebAssembly and modified to expose a typescript API
-- `svelte_blinkenweb` a svelte web app implementing a mobile-friendly frontend for the blink Wasm emulator.
+## features
+
+- Support for most assemblers: GNU Binutils, Fasm, and Nasm. These programs are real x86-64 ELFs, emulated client-side. You are free
+ to configure their command-line arguments and file input.
+- Editor with syntax-highlighting and error diagnostics
+- Simple, distraction-free interface implementing a reduced set of the gdb commands and behaviour.
+ every button in the debugger is labelled with the name of the corresponding gdb command.
+- Debugger focused on data visualizations typical of the binary exploitation ctf world:
+ Registers and stack hexdump are displayed in the same way as gdb with the gef or pwngdb plugin enabled.
+- Mobile friendly, accessible interface running entirely client-side. Easily loads with slow internet connections thanks to its lightweight bundle size.
+
+## Project overview
+
+This project is divided in two areas of development:
+- the typescript svelte webapp
+- the c x86-64-Linux [blink](https://github.com/jart/blink/) emulator, modified to be used as a webassembly library.
+
+Using Emscripten, the modified blink emulator is compiled into a wasm file and and a companion javascript module.
+The typescrpt webapp then implements an API interface around these two artifacts. A bird-eye overview of the whole architecture is described in the diagram below:
-The assemblers provided by the app are traditional x86-64 ELFs, emulated client-side in the blink runtime.
+
diff --git a/docs/architecture.png b/docs/architecture.png
new file mode 100644
index 0000000..2847a52
Binary files /dev/null and b/docs/architecture.png differ