put channel pooling functions separately.