Initial commit

The code is really old, so it need to be refactored before uploading.
Here's a first part.