Implement a lot of stuff
gitignore