         handler = =>
           @tour.show page
 
-      addEventListener el, event, handler
+      el.addEventListener event, handler
 
     @on 'destroy', ->
       for event, handler of cfg.events
-        removeEventListener el, event, handler
-
-class Tour
+        el.removeEventListener event, handler
+
+class Shepherd extends Evented
   constructor: (@options={}) ->
     @steps = @options.steps ? []
 

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

    @show(index + 1)

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

  ->
    id++

createFromHTML = (html) ->
  el = document.createElement('div')
  el.innerHTML = html
  el.children[0]

matchesSelector = (el, sel) ->
  matches = el.matches ? el.matchesSelector ? el.webkitMatchesSelector ? el.mozMatchesSelector ? el.oMatchesSelector
  return matches.call(el, sel)

parseShorthand = (obj, props) ->
  if not obj?
