improve javadoc
add ut