Especially after #10 (and other PRs perhaps, didn't look at all of them yet) we should really split things up a bit into multiple files.