support for abstract classes with partial implementation