Adding a documentation file on the overall architecture of the project, and cleaning the code a bit