collision.{h,cc} and euler_semi_implicit.{cc,h} made