Added a bunch of stuff like include guards