valuetype has become pure virtual; every derivative must implement it