+ lots of JavaDoc