re-added friction.
imperfect but working MovementSolver