Yeah pretty much what i thought, i would have to transform the data at some point...

All the classes in my library are my own, so they dont contain any .net classes or any type...

When SL does the intersectsWith(Rect) it creates a new rect with the result, as it is passed an immutable Rect so it has to generate a new one to return out with the intersection, so thats a new Rect for every intersection check you do... and i was doing ALOT of them...