added javadocs for everything