There are still a couple of things I want to change but I don't want to have a bigger commit (it's already unusable as a diff… shame on me)