Parametrise SubscriptionDrainer with a field instead of subclasses