updated group factory