An apparatus that improves rotation of a rotatable shaft about an axis, the rotatable shaft having a cyclical cogging torque acting thereon in a first direction, the apparatus comprising: a first support member that is coupled to the rotatable shaft for rotation therewith; a second support member that is adjacent the first support member, the first support member operable to rotate relative to the second support member; a first magnetic member coupled to one of the first and second support members; a second magnetic member coupled to the other of the first and second support members, the second magnetic member operable to magnetically interact with the first magnetic member to provide an anti-cogging torque to the rotatable shaft in a second direction that opposes the first direction to at least partially offset the cogging torque; a controller that controls and varies an amount of the anti-cogging torque provided to the rotatable shaft, wherein the rotatable shaft is at least one of: a crankshaft of an internal combustion engine, wherein the cogging torque occurs due to varying pressure within an engine cylinder, and an input shaft of a camming system, wherein the cogging torque occurs due to varying biasing loads from a biasing member; characterized in that it comprises an actuator operable to actuate at least one of the first and second magnetic members relative to the other to vary a distance between the first and second magnetic members, wherein the controller is operable to control the actuator to control the distance between the first and second magnetic members to thereby vary the amount of the anti-cogging torque provided to the rotatable shaft. a first support member that is coupled to the rotatable shaft for rotation therewith; a second support member that is adjacent the first support member, the first support member operable to rotate relative to the second support member; a first magnetic member coupled to one of the first and second support members; a second magnetic member coupled to the other of the first and second support members, the second magnetic member operable to magnetically interact with the first magnetic member to provide an anti-cogging torque to the rotatable shaft in a second direction that opposes the first direction to at least partially offset the cogging torque; a controller that controls and varies an amount of the anti-cogging torque provided to the rotatable shaft, wherein the rotatable shaft is at least one of: a crankshaft of an internal combustion engine, wherein the cogging torque occurs due to varying pressure within an engine cylinder, and an input shaft of a camming system, wherein the cogging torque occurs due to varying biasing loads from a biasing member; a crankshaft of an internal combustion engine, wherein the cogging torque occurs due to varying pressure within an engine cylinder, and an input shaft of a camming system, wherein the cogging torque occurs due to varying biasing loads from a biasing member; characterized in that it comprises an actuator operable to actuate at least one of the first and second magnetic members relative to the other to vary a distance between the first and second magnetic members, wherein the controller is operable to control the actuator to control the distance between the first and second magnetic members to thereby vary the amount of the anti-cogging torque provided to the rotatable shaft.