rewritten Collision