refactor, javadoc