added some javadoc
added comments; made non-interface method protected
added 'this' for max clarity
added comments; made non-interface method protected
made implement serializable
made implement serializable just to be explicit (i know it's not needed), added comment
saved a line
better aligned javadoc
tidied up comments and added more