/// <summary>
        /// Decrements or increments depending on factor
        /// </summary>
        /// <param name="factor">Multiplication factor (1 or -1) will be applied to the step</param>
        private Task Change(double factor = 1)
        {
            var value = Num.To <T>(Num.From(Value) + Num.From(Step) * factor);

            return(SetValueAsync(ConstrainBoundaries(value).value));
        }