remove all instance variables from BaseAbstract* classes, so that they
can be replaced by default method implementations in the interface when
upgrading to Java 8
added some implementations