 
     out
 
-class Evented
-  on: (event, handler, ctx, once=false) ->
-    @bindings ?= {}
-    @bindings[event] ?= []
-    @bindings[event].push {handler, ctx, once}
-
-  once: (event, handler, ctx) ->
-    @on(event, handler, ctx, true)
-
-  off: (event, handler) ->
-    return unless @bindings?[event]?
-
-    if not handler?
-      delete @bindings[event]
-    else
-      i = 0
-      while i < @bindings[event].length
-        if @bindings[event][i].handler is handler
-          @bindings[event].splice i, 1
-        else
-          i++
-
-  trigger: (event, args...) ->
-    if @bindings?[event]
-      i = 0
-      while i < @bindings[event].length
-        {handler, ctx, once} = @bindings[event][i]
-
-        handler.apply(ctx ? @, args)
-
-        if once
-          @bindings[event].splice i, 1
-        else
-          i++
-
 class Step extends Evented
   constructor: (@tour, options) ->
     @setOptions options

  next: =>
    index = @steps.indexOf(@currentStep)

    @show(index + 1)

  back: =>
    index = @steps.indexOf(@currentStep)

{extend, removeClass, addClass, Evented} = Tether.Utils

ATTACHMENT =
  'top': 'top center'
