added intersection listeners and th ability for rectangles to hold an arbitrary object