Added full javadoc