diff --git a/README.md b/README.md
index 92c7fc989cccfba3347402b1eaf0dac070ff6f01..77bcdaf15f1224390d5062dcb9d096533130d380 100644
--- a/README.md
+++ b/README.md
@@ -32,24 +32,51 @@ Software is the instructions for the ARM-processor, telling it which registers a
 
 ## Compiler
 
+Two of the main open-source compiler projects:
+
+* GCC (Gnu Compiler Collection) Age: 31 years
+* LLVM (originally: Low-Level Virtual Machine) Age: 16 years
+
+In this course LLVM will be used to turn our source code, written in Rust,
+into ready to run ARM instructions.
+
 ## Toolchain
 
 ### Git
 
-### Cargo-binutils
+Git is a distributed revision control system, most likely most of you have heard of it, maybe even used it.
+
+It allows for convenient collaboration and handles everything from small one-file projects to massive
+[projects](https://github.com/torvalds/linux).
 
-```
-rustup component add llvm-tools-preview
-```
 
 ### GDB / LLDB
 
+
 ## Rust
 
 Installation
 
 https://rustup.rs/
 
+### Cargo
+
+The package manager for Rust
+
+Taking care of dependencies, compilation and many other things.
+
+For more information: https://doc.rust-lang.org/cargo/
+
+### Cargo-binutils
+
+#### Installation
+```
+rustup component add llvm-tools-preview
+```
+
+C
+
+
 # Bare-metal programming
 
 ## OpenOCD