private IEnumerator Processor(ITweenable processor, Vector4 startPoint, Vector4 endPoint, float time, float delay, AnimationCurve curve)
        {
            yield return(new WaitForSeconds(delay));

            var delta   = 0f;
            var current = Vector4.zero;

            while (delta < 1)
            {
                current = startPoint + ((endPoint - startPoint) * GetDelta(delta, curve));
                processor.Process(current);
                delta += Time.deltaTime / time;
                yield return(null);
            }

            processor.Finished(endPoint);

            yield return(null);
        }