add javadoc
review improvement