private IEnumerator SetTarget()
    {
        Debug.Log("starting SetTarget");
        Debug.Log(Tour.pathways);
        rb.transform.position = new Vector3(Tour.pathways[0].GetPoints()[0].x, Tour.pathways[0].GetPoints()[0].y, Tour.pathways[0].GetPoints()[0].z);

        for (int p = 0; p < Tour.pathways.Count; p++)
        {
            currentPath = Tour.pathways[p];
            Debug.Log("in tour, going to next path:   " + currentPath.GetName() + "   :   " + p);
            for (int i = 0; i < currentPath.GetPointsLength() - 1; i++)
            {
                startPos = new Vector3(currentPath.GetPoints()[i].x, currentPath.GetPoints()[i].y, currentPath.GetPoints()[i].z);
                target   = new Vector3(currentPath.GetPoints()[i + 1].x, currentPath.GetPoints()[i + 1].y, currentPath.GetPoints()[i + 1].z);

                yield return(new WaitForSeconds(lerpTime));

                Debug.Log("going to next point: " + (i + 1));
            }
            startPos = currentPath.GetPoints()[currentPath.GetPointsLength() - 1];
            target   = currentPath.GetPoints()[currentPath.GetPointsLength() - 1];
            yield return(new WaitForSeconds(lerpTime));
        }


        StartCoroutine("SetTarget");
    }