simplify and support sub collective