   # loop - loop state (default: false)
   constructor: (@delay, @loop=false) ->
     @_dt = 0
+    @visible = false
+    @exists = true
+    @alive = true
 
   # Public: On end callback.
   onend: () ->


  # Public: Resets the timeout.
  reset: () ->
    @_dt = @delay
    @

  # Public: Kills the timeout.
  kill: () ->
    @_dt = 0
    @


  update: (timer) ->
    if @_dt > 0 and ((@_dt -= timer.dt) <= 0)
      @onend(@)

      if @loop
        @reset()
      else
        @kill()

    null
