More docs and better javadocs