Big guide/javadoc refactor