else @pushTimeline tm
pushTimeline:(timeline)->
@timelines.push timeline
@props.totalTime = Math.max timeline.props.totalTime, @props.totalTime
remove:(timeline)->
index = @timelines.indexOf timeline
if index isnt -1 then @timelines.splice index, 1
append:(timeline)->
if !h.isArray(timeline)
timeline.index = @timelines.length
@appendTimeline timeline
@props.totalTime = Math.max timeline.props.totalTime, @props.totalTime
else
i = timeline.length
@appendTimeline(timeline[i]) while(i--)
@recalcDuration()
appendTimeline:(timeline)->
timeline.setProp(delay: timeline.o.delay + @props.totalTime)
@timelines.push timeline
recursive push to handle arrays of arrays