Lots of javadocs