update with working collisions