implement translation, rotation and cushion collisions