         waitsFor (-> loading), 'video loading', 10000
 
       it 'should announce state changes', ->
-        pv = new PlayerView viewOptions()
-
         # start playing on pv ready
         pv.on 'PlayerView:Ready', -> pv.player.api 'play'
 
         stateChanged = false
         pv.on 'PlayerView:StateChange', -> stateChanged = true
-
-        # load player view
-        acorn.util.appendCss()
-        $hiddenPlayer = $('<div>').addClass('acorn-player hidden').width(600)
-            .height(400).appendTo('body')
         runs -> $hiddenPlayer.append pv.render().el
 
         waitsFor (-> stateChanged), 'state change event', 10000
 
 
       describe 'video player view api', ->
-        pv = undefined
-        $hiddenPlayer = undefined
-
-        # froogaloop 'paused' query does not work, so track paused status
-        # manually. for details on bug, see:
-        #   https://github.com/vimeo/player-api/issues/31
-        #   http://stackoverflow.com/questions/14119494/
-        paused = true
+        paused = undefined
 
         beforeEach ->
-          pv = new PlayerView viewOptions()
+          # froogaloop 'paused' query does not work, so track paused status
+          # manually. for details on bug, see:
+          #   https://github.com/vimeo/player-api/issues/31
+          #   http://stackoverflow.com/questions/14119494/
+          paused = true
 
           # set listeners and start playing on pv ready
           pv.on 'PlayerView:Ready', ->



      it 'should look good', ->
        # setup DOM
        acorn.util.appendCss()
        $player = $('<div>').addClass('acorn-player').width(600).height(400)
            .appendTo('body')

        pv = new PlayerView viewOptions()
        pvReady = false
        pv.on 'PlayerView:Ready', -> pvReady = true


          $player.append pv.render().el
          pv.$el.find('iframe').width(600).height(371)
        waitsFor (-> pvReady), 'player view ready', 10000

        runs ->
          # stub afterEach pv.destroy() and $hiddenPlayer.remove() calls so that
          # playerView remains in DOM
          pv = destroy: ->
          $hiddenPlayer = remove: ->
