refactor & javadoc