Better refactoring to support overrides.  Added some needed JavaDocs.