Can't all those be moved as a single non-virtual declaration in the base class
with GetValueImpl being virtual?