generalize and javadoc