diff --git a/CHANGELOG b/CHANGELOG
index dbde75d1815e666c74a61025900e4a1de09442a8..5158b498850e9e525481308e3ceff53137f1f862 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,6 +5,9 @@
 - Choose between static or shared library for liblektor
 - Download the bakabase with obfuscation or not
 - Implicit types for queries with lkt
+- Import favorites from kurisu as new playlists
+- Catch signals to close cleanly lektord
+- Some bug fixes...
 
 # v2.1 (df74b85f)
 
@@ -25,7 +28,7 @@
 - Add a CI
 - Update documentation
 - Some refactor done
-- Some bug fixes…
+- Some bug fixes...
 
 # v1.8 (3e1d569e)
 
@@ -62,7 +65,7 @@ Revision 3 (c41b723e)
 - Restart keeps the play state
 - Addid can add multiple ids to the queue
 - Playlists and queue interaction improved
-- Bug fixes…
+- Bug fixes...
 
 # v1.6 (d7ac3759)
 
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 5b0dbf22a5425f91d406e1a90d16b940679698cc..16de49af5bb4c284aed34e2ce552cde52422995c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -9,6 +9,10 @@ Please, add your name in the CONTRIBUTORS file. The format is `First name
 'Pseudal' FAMILY NAME`. The licence is a modified version of the ISC licence
 to include this file (in short, a kind of MIT licence).
 
+## License
+
+See [LICENSE](LICENSE).
+
 ## Building
 
 It is recommended to use the `../configure` method to build while in
@@ -20,6 +24,8 @@ there are no package for your distribution, feel free to add a way to make it.
 
 ## Style and the code
 
+### C code and style
+
 Prefer using `__${name}` names for static variables and functions. Prefix the
 name of the file or folder in function names, e.g. `database_` or `command_`.
 
@@ -31,3 +37,38 @@ You are encouraged to use the `./scripts/tags.bash` script to build the `ctags`
 and `cscope` database files to explore more easelly the project.
 
 The C standard used here is C11, because on debian C18 doesn't compiles.
+
+### Scripts
+
+Scripts goes to the [scripts](scripts) folder. They must be written to be
+launched from the root of the project. Include the language used in the name of
+the script, for example:
+
+- `astyle.bash`: written in bash
+- `magic.rb`: written in ruby
+
+Please, do not write scripts in too many different languages to reduce the
+number of dependencies. If you are using binaries in your scripts (like astyle
+or bc), include them in the binary dependencies in the [README](README.md)
+file.
+
+There is a strong possibility that your script will do similar things to what a
+script already in this repo do. In that case, please work on the existing
+script and enhance it with your changes. No need to duplicate things.
+
+## Merge request titles
+
+Try to be as more descriptive as you can in your Merge Request title. Include
+the issue number and the target OS if possible.
+
+- Branch from the master branch and, if needed, rebase to the current master
+  branch before submitting your merge request. If it doesn't merge cleanly with
+  master you may be asked to rebase your changes
+- Commits should be as small as possible, while ensuring that each commit is
+  correct independently (i.e., each commit should compile and pass tests)
+- Add tests relevant to the fixed bug or new feature. In general, add a way to
+  test lektor
+
+When adding new fetures or solving issues / bugs, please edit the
+[CHANGELOG](CHANGELOG) file at the `# Next` section. This will help people know
+what has been done since the last version
diff --git a/README.md b/README.md
index 442a5342c0f7f12a29a9c8885bdf11aad96efaac..157a5339ac66a01ec72dc37d0f329429a606f0df 100644
--- a/README.md
+++ b/README.md
@@ -4,11 +4,17 @@
 [![coverage report](https://git.iiens.net/martin2018/lektor/badges/master/coverage.svg)](https://git.iiens.net/martin2018/lektor/-/commits/master)
 
 A Karaoke player made to replace the old bash scripts on Sakura.
-They will enable one to have a database and make requests over the network.
+
+## Table of content
+
+- [Building instructions](#building-the-player)
+- [Preparing karaokes for lektor](#preparing-a-kara-for-lektor)
+- [How to use lektor](#how-to-use-lektor)
+- [Contributing](#contributing)
 
 ## Building the player
 
-Prerequisites:
+### Prerequisites
 
 - [autotools](https://www.gnu.org/software/autoconf/) only if you change the
   configuration (if you only edit existing files you won't need it)
@@ -52,6 +58,13 @@ If you use the configure with the `--with-depends` option (needed on debian
 Note that because of the use of `curl` and `get`, building behind a proxy may
 be challenging.
 
+If you are developping for lektor, you will need:
+
+- the [astyle](http://astyle.sourceforge.net/) command line utility, for a
+  beautifull and uniform coding style.
+
+### Building instructions
+
 The manual way of installing and setting up lektor:
 
 ```sh
@@ -81,14 +94,14 @@ On archlinux, you need only to install the package:
 makepkg -si
 ```
 
-**Important note**: if you are building using WSL, `lektord` will likely not
+> **Important note**: if you are building using WSL, `lektord` will likely not
 launch, because `XDG_RUNTIME_DIR` is not defined here. This folder is
 important, this is where most of your deamons are puttings theirs sockets and
 so. Blame Microsoft for that. A workaround is to export one: `export
 WDG_RUNTIME_DIR=$(mktemp -d)` before launching lektord. Be aware that you will
 have issues with sound and videos becouse you will need to set up a X server...
 
-Currently, supported compilers are: `icc` 19.1.2.254 and above, `gcc` 8.3.0 and
+> Currently, supported compilers are: `icc` 19.1.2.254 and above, `gcc` 8.3.0 and
 above, `clang` 7.0.1 and above. It compiles on debian, thus it must compiles on
 your system (apport from CentOS, because I never tested on it).
 
@@ -109,7 +122,9 @@ written in the `.mkv` file.
 The ideal way of populating lektor is using *Kurisu*. The *update* and *rescan*
 commands are here for that.
 
-## How to launch lektor
+## How to use lektor
+
+### Launch instructions
 
 To run lektor, you can simply run the binary like: `./lektord`.
 
@@ -132,7 +147,7 @@ card with optimus (in almose every laptop), please use `optirun` or `primusrun`:
 optirun ./lektord
 ```
 
-## How to use lektor
+### How to send commands to lektor
 
 Lektor is compatible with mpd, which means that you can use any client (only mpc is
 tested) to interact with lektor. Some functions are not *really* compatible
@@ -140,29 +155,37 @@ tested) to interact with lektor. Some functions are not *really* compatible
 
 The ideal way is to use *lkt*.
 
-## How to configure lektor
+### How to configure lektor
 
 Lektor configuration is done with an INI file. Modules' configuration is also
-done by the same INI file using diferent sections.
-
-Lektor searches for the configuration file in that order:
+done by the same INI file using diferent sections.  Lektor searches for the
+configuration file in that order:
 
-- `$(pwd)/lektor.ini`
-- if `XDG_CONFIG_HOME` defined then `$XDG_CONFIG_HOME/lektor/lektor.ini` else
-  `$HOME/.config/lektor/lektor.ini`
-- `/opt/lektor/lektor.ini`
-- `/usr/local/etc/lektor.ini`
-- `/etc/lektor.ini`
+1. `$(pwd)/lektor.ini`
+2. if `XDG_CONFIG_HOME` defined then `$XDG_CONFIG_HOME/lektor/lektor.ini` else
+   `$HOME/.config/lektor/lektor.ini`
+3. `/opt/lektor/lektor.ini`
+4. `/usr/local/etc/lektor.ini`
+5. `/etc/lektor.ini`
 
 The first one to be found is picked up by lektor. Note that if the environment
 variable `XDG_CONFIG_HOME` is not defined, it is replaced by `HOME/.config`.
 
-To get the default config file, you can use the `lkt adm conf` command.
+To get the default config file, you can use the `lkt adm conf` command. If no
+config file is found, lektord will try to create the
+`$HOME/.config/lektor/lektor.ini` config file with the default content.
+
+Be aware that if the home directory or the `XDG_CONFIG_HOME` are too long they
+will be ignored and truncated. You may then get uncomprehensible errors.
+
+## Contributing
+
+Please, refer to the [CONTRIBUTING](CONTRIBUTING.md) file.
 
-Be aware that if the home directory or the `XDG_CONFIG_HOME` are too long
-they will be ignored and truncated.
+### Modules
 
-## Modules
+Modules are a way of putting modular code in lektor. It enable the user to
+select different types of players and repositories.
 
 Modules are `.so` files (i.e. dynamic libraries) loaded by lektors using a
 function named `module_set_function` which takes a `void *` and a
@@ -187,7 +210,8 @@ structure. The rest is up to you, no checks will be done. All functions must ret
 an `int` in a POSIX way: `0` if everything is ok, an other value if something
 went wrong.
 
-## MPD
+### MPD
 
 Lektor is almost MPD compatible, at least it uses the same protocol, which can
-be gotten [here](https://www.musicpd.org/doc/html/protocol.html#).
+be gotten [here](https://www.musicpd.org/doc/html/protocol.html#). The full
+support for MPD clients (like mpc) is still WIP.