add smart channel filtering to fill and drain