Added a bunch of stuff

I think we shouldn't use a global class, seems kind of shitty
programming but we'll see.
Also every struct is just a collection of variables, we should just make
those inner classes i think, and there own file if they are used in more
than one file.