Start coroutines when the class is not a MonoBehaviour

I made a simple rig that moves stuff over time like this:

Transform from;
        Transform to;
        float overTime;
        IUIAnimationEvent chain;
        public delegate void UIchain();
        public event UIchain NEXT_FUNCTION;
        public MoveAction(Transform from, Transform to, float overTime, IUIAnimationEvent chain)
            this.from = from;
   = to;
            this.overTime = overTime;
            this.chain = chain;
        public void Move()
            MonoBehaviour _lead = new MonoBehaviour();
            if (moveRoutine != null)
            moveRoutine = _Move(from, to, overTime);
        IEnumerator _Move(Transform from, Transform to, float overTime)
            Vector2 original = from.position;
            float timer = 0.0f;
            while (timer < overTime)
                float step = Vector2.Distance(original, to.position) * (Time.deltaTime / overTime);
                from.position = Vector2.MoveTowards(from.position, to.position, step);
                timer += Time.deltaTime;
                yield return null;
            if(NEXT_FUNCTION != null)

However, to make it work like I wish, I have to instantiate them, so they can’t be a MonoBehaviour.
Notice what I did with the _lead variable. I made it so I could start coroutines like any other.
If my class is NOT a MonoBehaviour, how to start a coroutine from it?
Or if that isn’t possible, how to instantiate classes that ARE MonoBehaviour? I noticed the use AddComponent instead, but the classes are not components. They are used by another component.

Sod it, solved. Had a similar post on Stackoverflow here.