can you avoid repeating this method, eg. move to a base class?