Many improvements

- Add a configuration file
- Improve file handling
- Add a .gitignore