public void AddAnimationTrack(AnimatedObject obj)
    {
        GameObject g = Instantiate(timeline.trackPrefab.gameObject, timeline.transform.parent);

        g.transform.rotation   = timeline.trackPrefab.transform.rotation;
        g.transform.localScale = timeline.trackPrefab.transform.localScale;

        AnimationTrack newTrack = g.GetComponent <AnimationTrack>();

        animationTracks.Add(newTrack);

        int     trackIndex       = animationTracks.IndexOf(newTrack);
        Vector3 newTrackPosition = TimelineTrackPosition(trackIndex);

        newTrack.SetUpTrackProperties(obj, newTrackPosition, timeline, trackIndex, timeline.trackPrefab.unselectedColor, timeline.trackPrefab.selectedColor);
        obj.animTrack = newTrack;

        /// add animationOwner
        GameObject trackOwner = Instantiate(timeline.timelineTrackOwnerPrefab.gameObject, timeline.transform);

        Debug.Log("created trackOwner " + trackOwner);
        trackOwner.transform.rotation   = timeline.timelineTrackOwnerPrefab.transform.rotation;
        trackOwner.transform.localScale = new Vector3(1, 1, 1);

        trackOwner.transform.localPosition = TimelineTrackOwnerPosition(trackIndex);
        TimelineTrackOwner newTrackOwner = trackOwner.GetComponent <TimelineTrackOwner>();

        newTrack.timelineTrackOwner = newTrackOwner;
        newTrackOwner.track         = newTrack;
    }