split group service into two layers