Added a bunch of comments and move around requires