added some extra javadoc