Any particular reason why this has to be extracted into it's own class (DrainSupport)?