public void rotate(RotationState state) 
    {   
        
        if (state != RotationState.TurningLeftDrifting && state != RotationState.TurningRightDrifting) 
        {
            angularVelocity += angleIcrement * .1;
            
            if (angularVelocity > maxAngularVel) 
            {
                angularVelocity = maxAngularVel;
            } 
            else if (angularVelocity < -maxAngularVel) 
            {
                angularVelocity = -maxAngularVel;
            }
            
            if ((angularVelocity < .01 && angularVelocity > 0) || (angularVelocity > -.01 && angularVelocity < 0)) 
            {
                angularVelocity = 0;
                rotationState = RotationState.Idle;
            }
        }
        else 
        {
            angularVelocity *= .90; // causes acceleration
        }
        
        updateAngle(state);
    }