there should be a base class handling this
there should be a base class handling this