add group support, some refactors in intent service