Silly doc stuff
Huge refactor