javadoc & preconditions