   rotate: (event)=>
     # v is the vector from the center of the content to
     # the pointer of the mouse
-    vector = V.eventDir event, @_state.center
+    direction =
+      x: event.pageX
+      y: event.pageY
+    vector = V.vector(direction, @_state.rotatedCenter)
     # vn is v normalized
     normalized = V.normalized vector
     # "sign" is the sign of v.x

    @contains = new RotateContainerView
    @listenToDragStart()
    @position()
    # we attribute the angle beta
    @beta = (@model.get 'rotate') * (2 * Math.PI / 360)
    @setState()
  
  position: ()->
    for prop in 'top left width height'.split ' '
      @$el.css(prop, @model.get(prop))

    @beta = (Math.asin(normalized.y) + Math.PI / 2) * sign
    betaDeg = @beta * 360 / (2 * Math.PI)

    # the difference between the old and new value

    # "original" M
    originalM =
      x : @_state.rotatedCenter.x - @_state.elDimension.width / 2
      y : @_state.rotatedCenter.y - @_state.elDimension.height / 2

    #console.log("original M")
    #console.log(originalM)

    # we now have to figure out the new position of the (0,0)
    # of the zonard:
    cM =
      x : @_state.elOffset.left - @_state.elCenter.x
      y : @_state.elOffset.top - @_state.elCenter.y

    cN =
      x : cM.x * Math.cos(@beta) - cM.y * Math.sin(@beta)
      y : cM.x * Math.sin(@beta) + cM.y * Math.cos(@beta)

    mN =
      x : cN.x - cM.x
      y : cN.y - cM.y

    #console.log("norme MN")
    #console.log(V.norm(mN))

    # preparing and changing css
    @$el.css
      left : originalM.x + mN.x + @_state.workspaceOffset.left
      top : originalM.y  + mN.y + @_state.workspaceOffset.top
    @contains.rotate betaDeg
    @trigger 'change:rotate', betaDeg

