adding missing javadoc and return unmodifiable collections.