use dictionary to manage the agent's list