Can this be extracted to shared base class?