add Group model and PublicGroup class