docs: def add_to_grid(self, agent):
          '''Add agent to the next available spot in the grid.
  
          :returns:
              (x,y) of the agent in the grid. This is the agent's overall
              coordinate in the grand grid (i.e. the actual coordinate of the
              agent w.t.r **origin**).
  
          :raises: `ValueError` if the grid is full.
          '''
          for i in range(len(self.grid)):
              for j in range(len(self.grid[0])):
                  if self.grid[i][j] is None:
                      x = self.origin[0] + i
                      y = self.origin[1] + j
                      self.grid[i][j] = agent
                      return (x, y)
  
          raise ValueError("Trying to add an agent to a full grid."
                           .format(len(self._grid[0]), len(self._grid[1])))