Refactored restitution