separated collision detection