diff --git a/readme.md b/readme.md
index 8e0efcb..52c1a99 100644
--- a/readme.md
+++ b/readme.md
@@ -1,112 +1,133 @@
-# Python course
-This repository contains some notes and exercises for learning python3.
+Table of Contents
+=================
-## Initiation to programming
+* [What we'll learn](./learning_python3.md#what-well-learn)
+ * [Concepts](./learning_python3.md#concepts)
+ * [Syntax](./learning_python3.md#syntax)
+ * [Tools](./learning_python3.md#tools)
+ * [Writing code](./learning_python3.md#writing-code)
+ * [Running code](./learning_python3.md#running-code)
+* [The python3 shell](./learning_python3.md#the-python3-shell)
+* [Installing pycharm](./learning_python3.md#installing-pycharm)
+ * [Virtual environments](./learning_python3.md#virtual-environments)
+* [Your first project](./learning_python3.md#your-first-project)
+ * [c#](./learning_python3.md#c)
+ * [c](./learning_python3.md#c-1)
+ * [c++](./learning_python3.md#c-2)
+ * [javascript](./learning_python3.md#javascript)
+ * [How to execute](./learning_python3.md#how-to-execute)
+ * [Simple printing](./learning_python3.md#simple-printing)
+ * [Try it](./learning_python3.md#-try-it)
+ * [Try it](./learning_python3.md#-try-it-1)
+ * [String replacement](./learning_python3.md#string-replacement)
+ * [String formatting](./learning_python3.md#string-formatting)
+ * [Some links to read up](./learning_python3.md#some-links-to-read-up)
+* [Taking input](./learning_python3.md#taking-input)
+ * [Some functions are blocking](./learning_python3.md#some-functions-are-blocking)
+ * [Functions can return something](./learning_python3.md#functions-can-return-something)
+ * [Try it](./learning_python3.md#-try-it-2)
+ * [Functions can take arguments](./learning_python3.md#functions-can-take-arguments)
+ * [Try it](./learning_python3.md#-try-it-3)
+* [Taking input and evaluation](./learning_python3.md#taking-input-and-evaluation)
+ * [Conditional logic](./learning_python3.md#conditional-logic)
+ * [Class string methods](./learning_python3.md#class-string-methods)
+ * [Try it](./learning_python3.md#-try-it-4)
+ * [Some links to read up on](./learning_python3.md#some-links-to-read-up-on)
+* [Coding challenge - Currency converter](./learning_python3.md#coding-challenge---currency-converter)
+* [Coding challenge - Celsius to Fahrenheit converter](./learning_python3.md#coding-challenge---celsius-to-fahrenheit-converter)
+ * [Some links to read up on](./learning_python3.md#some-links-to-read-up-on-1)
+* [A text based adventure game](./learning_python3.md#a-text-based-adventure-game)
+* [Creating your own functions](./learning_python3.md#creating-your-own-functions)
+ * [Functions that do something](./learning_python3.md#functions-that-do-something)
+ * [Variable scope](./learning_python3.md#variable-scope)
+ * [Functions that return something](./learning_python3.md#functions-that-return-something)
+ * [Try it](./learning_python3.md#-try-it-5)
+ * [Some links to read up on](./learning_python3.md#some-links-to-read-up-on-2)
+* [Coding challenge - Pretty Print](./learning_python3.md#coding-challenge---pretty-print)
+* [Using the standard library](./learning_python3.md#using-the-standard-library)
+* [Coding challenge - Memento Mori calculator](./learning_python3.md#coding-challenge---memento-mori-calculator)
+* [Writing your first library](./learning_python3.md#writing-your-first-library)
+ * [Try it](./learning_python3.md#-try-it-6)
+ * [How do we write libraries?](./learning_python3.md#how-do-we-write-libraries)
+ * [What is __name__ == "__main__"?](./learning_python3.md#what-is-__name__--__main__)
+ * [Anatomy of a program](./learning_python3.md#anatomy-of-a-program)
+ * [Try it](./learning_python3.md#-try-it-7)
+* [While loop](./learning_python3.md#while-loop)
+ * [Try it](./learning_python3.md#-try-it-8)
+* [Coding challenge - Guess the number](./learning_python3.md#coding-challenge---guess-the-number)
+ * [Try it](./learning_python3.md#-try-it-9)
+* [Logical Operators](./learning_python3.md#logical-operators)
+* [Lists](./learning_python3.md#lists)
+ * [Creating lists](./learning_python3.md#creating-lists)
+ * [List methods](./learning_python3.md#list-methods)
+ * [Try it](./learning_python3.md#-try-it-10)
+ * [Picking elements and slicing lists](./learning_python3.md#picking-elements-and-slicing-lists)
+ * [Try it](./learning_python3.md#-try-it-11)
+* [For loop](./learning_python3.md#for-loop)
+* [Coding challenge - Cheerleader chant](./learning_python3.md#coding-challenge---cheerleader-chant)
+* [Coding challenge - ROT13](./learning_python3.md#coding-challenge---rot13)
+ * [Try it](./learning_python3.md#-try-it-12)
+* [Coding challenge - Christmas Tree](./learning_python3.md#coding-challenge---christmas-tree)
+* [List comprehension](./learning_python3.md#list-comprehension)
+* [Handling files](./learning_python3.md#handling-files)
+ * [Reading from a file](./learning_python3.md#reading-from-a-file)
+ * [In-line way](./learning_python3.md#in-line-way)
+ * [Pythonic way](./learning_python3.md#pythonic-way)
+ * [Writing to a file](./learning_python3.md#writing-to-a-file)
+* [Coding challenge - Login generator](./learning_python3.md#coding-challenge---login-generator)
+* [Dictionaries as data containers](./learning_python3.md#dictionaries-as-data-containers)
+ * [Two dimensional lists](./learning_python3.md#two-dimensional-lists)
+ * [Dictionaries](./learning_python3.md#dictionaries)
+ * [Try it](./learning_python3.md#-try-it-13)
+* [Coding challenge - Task manager](./learning_python3.md#coding-challenge---task-manager)
+ * [CSV based task manager](./learning_python3.md#csv-based-task-manager)
+* [Text based databases](./learning_python3.md#text-based-databases)
+ * [Try it](./learning_python3.md#-try-it-14)
+* [Now for some useful scripting](./learning_python3.md#now-for-some-useful-scripting)
+* [Creating our own objects](./learning_python3.md#creating-our-own-objects)
+ * [First some abstract examples](./learning_python3.md#first-some-abstract-examples)
+ * [Try it](./learning_python3.md#-try-it-15)
+ * [Magic methods](./learning_python3.md#magic-methods)
+ * [Class inheritance](./learning_python3.md#class-inheritance)
+ * [Try it](./learning_python3.md#-try-it-16)
+* [Coding challenge - Chalet floor](./learning_python3.md#coding-challenge---chalet-floor)
+ * [Now some practical improvements](./learning_python3.md#now-some-practical-improvements)
+ * [Improve the login generator](./learning_python3.md#improve-the-login-generator)
+ * [Improve the task manager](./learning_python3.md#improve-the-task-manager)
+* [Infinite programs](./learning_python3.md#infinite-programs)
+ * [Logic breakdown of a simple game](./learning_python3.md#logic-breakdown-of-a-simple-game)
+ * [A non object orientated solution](./learning_python3.md#a-non-object-orientated-solution)
+ * [An object orientated solution](./learning_python3.md#an-object-orientated-solution)
+ * [Trivial pursuit multiple choice game](./learning_python3.md#trivial-pursuit-multiple-choice-game)
+ * [Introduction to the requests library](./learning_python3.md#introduction-to-the-requests-library)
+ * [Threading](./learning_python3.md#threading)
-* Day 1
- * What we'll learn
- * Concepts
- * Syntax
- * Tools
- * Writing code
- * Running code
- * The python3 shell
- * Installing pycharm
- * Your first project
- * c
- * c
- * c++
- * javascript
- * How to execute
- * Simple printing
- * 🏃 Try it
- * 🏃 Try it
- * String replacement
- * String formatting
- * Some links to read up
- * Taking input
- * Some functions are blocking
- * Functions can return something
- * 🏃 Try it
- * Functions can take arguments
- * 🏃 Try it
- * Taking input and evaluation
- * Conditional logic
- * Class string methods
- * Some links to read up on
- * Coding challenge - Celsius to Fahrenheit converter
-* Day 2
- * A text based adventure game
- * Creating your own functions
- * Functions that *do* something
- * Variable scope
- * Functions that *return* something
- * 🏃 Try it
- * Some links to read up on
- * Coding challenge - Pretty Print
- * Using the standard library
- * Coding challenge - Memento Mori calculator
-* Day 3
- * Writing your first library
- * 🏃 Try it
- * How do we write libraries?
- * What is `__name__ == "__main__"`?
- * Anatomy of a program
- * 🏃 Try it
- * While loop
- * 🏃 Try it
- * Coding challenge - Guess the number
- * 🏃 Try it
-* Day 4
- * Lists
- * Creating lists
- * List methods
- * 🏃 Try it
- * Picking elements and slicing lists
- * 🏃 Try it
- * For loop
- * Coding challenge - Cheerleader chant
- * Coding challenge - ROT13
- * 🏃 Try it
- * List comprehension
-* Day 5
- * Handling files
- * Reading from a file
- * In-line way
- * Pythonic way
- * Writing to a file
- * Coding challenge - Login generator
- * Dictionaries as data containers
- * Coding challenge - Task manager
- * Text based databases
-* Day 6
- * Now for some useful scripting
-* Day 7
- * Creating our own objects
- * First some *abstract* examples
- * 🏃 Try it
- * Class inheritance
- * 🏃 Try it
- * A *practical* example
- * Now some *practical* improvements
- * Improve the login generator
- * Improve the task manager
-* Day 8
- * Infinite programs
- * Logic breakdown of a simple game
- * Trivial pursuit multiple choice game
- * Introduction to the `requests` library
- * Threading
-* Day 9
- * GUI programming
- * Tkinter helloworld
- * Tkinter guess the number
- * MVC design pattern
-* Day 10-12
- * Coding challenge - Login generator with GUI
- * Coding challenge - Trivial pursuit with GUI
-## Linux system administrator
+Table of Contents
+=================
+
+* [tkinter](./learning_python3_gui.md#tkinter)
+ * [Tkinter helloworld](./learning_python3_gui.md#tkinter-helloworld)
+ * [Try it](./learning_python3_gui.md#-try-it)
+* [Coding challenge - Guess the number](./learning_python3_gui.md#coding-challenge---guess-the-number)
+ * [MVC design pattern](./learning_python3_gui.md#mvc-design-pattern)
+ * [Coding challenge - Login generator with GUI](./learning_python3_gui.md#coding-challenge---login-generator-with-gui)
+ * [Coding challenge - Trivial pursuit with GUI](./learning_python3_gui.md#coding-challenge---trivial-pursuit-with-gui)
+* [WXpython](./learning_python3_gui.md#wxpython)
+ * [wxpython helloworld](./learning_python3_gui.md#wxpython-helloworld)
+ * [wxpython guess the number](./learning_python3_gui.md#wxpython-guess-the-number)
+ * [MVC design pattern](./learning_python3_gui.md#mvc-design-pattern-1)
+ * [Coding challenge - Login generator with GUI](./learning_python3_gui.md#coding-challenge---login-generator-with-gui-1)
+ * [Coding challenge - Trivial pursuit with GUI](./learning_python3_gui.md#coding-challenge---trivial-pursuit-with-gui-1)
+
+Table of Contents
+=================
+
+* [Git](./learning_git.md#git)
+ * [Git in Pycharm](./learning_git.md#git-in-pycharm)
+ * [Starting a version controlled project](./learning_git.md#starting-a-version-controlled-project)
+ * [Creating an online repository](./learning_git.md#creating-an-online-repository)
+ * [Cloning the remote project into a new project](./learning_git.md#cloning-the-remote-project-into-a-new-project)
+ * [Updating the original project](./learning_git.md#updating-the-original-project)
-**TODO**