agreed - I want to add more tuning to this - in particular, I don't think I need to recalculate paths unless we've moved "far enough away".

I'm a little less concerned about the memory fragmentation, I suspect that the heap management will do a pretty good job of this since these objects are the same size.