need generical functions for first collision and light collisions