       throw new Error "Using the attachment feature of Shepherd requires the Tether library"
 
     opts = parseShorthand @options.attachTo, ['element']
+    opts ?= {}
 
     if typeof opts.element is 'string'
       opts.element = document.querySelector opts.element
 
-    @tether = new Tether
+      if not opts.element?
+        throw new Error "Shepherd step's attachTo was not found in the page"
+
+    attachment = ATTACHMENT[opts.on or 'right']
+    if not opts.element?
+      opts.element = 'viewport'
+      attachment = 'middle center'
+
+    tetherOpts =
       element: @el
       target: opts.element
       offset: opts.offset or '0 0'
-      attachment: ATTACHMENT[opts.on or 'right']
+      attachment: attachment
+
+    @tether = new Tether extend(tetherOpts, @options.tetherOptions)
 
   show: =>
     if not @el?

tour.start
  hash: true

tour.completed 'seller-start'

          i++

  trigger: (event, args...) ->
    if @bindings?[event]
      i = 0
      while i < @bindings[event].length
        {handler, ctx, once} = @bindings[event][i]
