more shaky but more correct collisions