/// <summary>
        /// Transforms the input values from controller to left and right speed
        /// values for the motors
        /// </summary>
        /// <param name="controller"></param>
        /// <returns>A Tuple(int, int) with left and right speed values</int></returns>
        private Tuple <int, int> CalculateSpeedValues(IRemoteController controller)
        {
            controller.Update();
            float  rightTrigger = controller.RightTrigger;
            float  leftTrigger  = controller.LeftTrigger;
            double rightThumbX  = controller.RightThumb.X;
            int    leftspeed    = 0;
            int    rightspeed   = 0;


            // calculate speed based on left and right triggers (right trigger forward, left trigger backward)
            int tempSpeed = (int)((rightTrigger - leftTrigger));// / 255 * 100);

            if (rightThumbX > 0)
            {
                double multiplier = rightThumbX / 100;
                leftspeed  = (int)(tempSpeed + multiplier * 255);
                rightspeed = (int)(tempSpeed - multiplier * 255);
            }
            else if (rightThumbX < 0)
            {
                double multiplier = rightThumbX / -100;
                leftspeed  = (int)(tempSpeed - multiplier * 255);
                rightspeed = (int)(tempSpeed + multiplier * 255);
            }
            else
            {
                rightspeed = leftspeed = tempSpeed;
            }

            return(Tuple.Create(leftspeed, rightspeed));
        }