is there a reason not to have them subclass some base thing that does the shared logic?