diff --git a/README.md b/README.md
index aa28fa0..e5fcb64 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,69 @@
-# ccmeta
+# CCMETA
-C compiler with embedded metalanguage.
\ No newline at end of file
+C compiler with embedded metalanguage.
+
+## Table of contents
+1. [Architecture](#ar)
+2. [Build the project](#bp)
+ - [Requirements](#ar)
+ - [Makefile](#makefile)
+ - [Build](#makefile_Build)
+ - [Clean](#makefile_Clean)
+ - [Test](#makefile_Test)
+3. [Usage](#usage)
+4. [Help](#help)
+ - [Peg/Leg](#pegleg)
+
+
+##
Architecture
+
+##
Build the project
+###
Requirements
+
+Please install [peg/leg](https://www.piumarta.com/software/peg/) manually or with a package manager, for example with Homebrew:
+```bash
+$ brew install peg
+```
+
+Please install [the Boehm-Demers-Weiser conservative garbage collector](https://www.hboehm.info/gc/) manually or with a package manager, for example with Homebrew:
+```bash
+$ brew install bdw-gc
+```
+
+###
Makefile
+
+####
Build
+
+```bash
+$ make
+```
+
+####
Clean
+```bash
+$ make clean
+```
+
+####
Test
+```bash
+$ make test
+```
+
+
+##
Usage
+You can pass your program:
+* via a file
+```bash
+$ ./ccmeta < file
+```
+* via a file
+```bash
+$ ./ccmeta file
+```
+
+##
Help
+
+###
peg/leg
+
+``` shell
+$ man peg
+```
\ No newline at end of file
diff --git a/media/ccmeta.drawio.png b/media/ccmeta.drawio.png
new file mode 100644
index 0000000..fa535af
Binary files /dev/null and b/media/ccmeta.drawio.png differ