A pointer to the entire object is being stored instead of the arc that overlaps.
Why is it that we first find bounding box then find the cells for the bbox, instead of just finding the cells for the object? It seems finding bbox then cells is one more step than just finding cells.
I think that in order to create the grid you need to define what area that grid would cover (which would be the bounding box). I don't think that those steps are significant, since you can probably just define the area of the bounding box, and then the size of the cells.