def __init__(self, N, width, height):
        self.agents = N
        self.grid = MultiGrid(width, height, True)
        self.schedule = RandomActivation(self)
        self.running = True
        self.steps = 0
        self.encounters = 0
        self.mean_encounters = 0

        # creating agents by iterating through n_agents
        for i in range(self.agents):
            # specify an agent as an object of class 'Agent' with unique_ID 'i'
            agent = Agent(i, self)
            # specify pitch measures for the agent as type 'float'
            agent.iqr = float(iqr.iloc[i])
            agent.speechrate = float(speechrate.iloc[i])
            agent.mad = float(mad.iloc[i])
            agent.pause = float(pause.iloc[i])
            agent.diagnosis = float(diagnosis.iloc[i])

            agent.symptom_severity = (agent.iqr + agent.mad +
                                      (1 - agent.speechrate) + agent.pause) / 4

            # add the agent to the model schedule
            self.schedule.add(agent)

            # adding the agent to a random grid cell
            x = self.random.randrange(self.grid.width)
            y = self.random.randrange(self.grid.height)
            self.grid.place_agent(agent, (x, y))

            # add data-collector to the agent
            self.datacollector = DataCollector(
                agent_reporters={
                    "interactions": "unique_interactions",
                    "interaction_time": "interaction_time",
                    "conversation_time": "conversation_time",
                    "change_IQR": "change_iqr",
                    "change_MAD": "change_mad",
                    "change_Speechrate": "change_speechrate",
                    "change_PauseFreq": "change_pause",
                    "abs_change_IQR": "abs_change_iqr",
                    "abs_change_MAD": "abs_change_mad",
                    "abs_change_Speechrate": "abs_change_speechrate",
                    "abs_change_PauseFreq": "abs_change_pause",
                    "activity": "activity",
                    "diagnosis": "diagnosis"
                },
                model_reporters={"Encounters": "encounters"})