collide is fundamentally broken, throw away and start again