scaladoc & refactor
refactor