add javadoc, scaladoc