Merging upstream

Hello !

I tried to merge our work with yours !
...
I know, this is a huuuuuge commit, but please take a look ! PLEASE :)