 
 
   initializeRemixMediaView: =>
+    @mediaView = new @model.module.MediaView
+      model: @model
+      eventhub: @eventhub
+      playOnReady: false
+
     @remixMediaView = new acorn.player.TimedMediaRemixView
       eventhub: @eventhub
+      mediaView: @mediaView
       model: @model
 
-    mediaView = @remixMediaView.mediaView
-    @listenTo mediaView, 'Media:Progress', (view, elapsed, total) =>
+    @listenTo @mediaView, 'Media:Progress', (view, elapsed, total) =>
       elapsed += @model.timeStart()
       @timeRangeView.progress elapsed, {silent: true}
 

    @model.loops(loops)

    # restart player loops
    if @remixMediaView.mediaView.isPlaying()
      @remixMediaView.mediaView.seek 0




    if changes.timeStart? and changes.timeStart isnt @model.timeStart()
      seekOffset = 0
    else if changes.timeEnd? and changes.timeEnd isnt @model.timeEnd()
      seekOffset = Infinity

    @model.set changes

    # unless user paused the video, make sure it is playing
    unless @mediaView.isInState 'pause'
      @mediaView.play()

    if seekOffset?
      seekOffset = Math.min(seekOffset, @model.timeEnd() - 2)
      seekOffset = Math.max(@model.timeStart(), seekOffset)
      console.log 'seekOffset: ' + seekOffset
      @mediaView.seek seekOffset

    @eventhub.trigger 'change:shell', @model, @

