implementation: GroupState, GroupAgentState