 
     return o
 
-  display:(o = @getOptions())->
+  display: ->
+
+    o = @getOptions()
+    {permanent, gravity, animate} = @getOptions()
 
     # converts NESW-Values to topbottomleftright and retains them in @getOptions
     @appendToDomBody()
-    KD.singletons.windowController.addLayer this
-    o = @translateCompassDirections o if o.gravity
+    KD.singletons.windowController.addLayer this  unless permanent
+    o = @translateCompassDirections o  if gravity
     o.gravity = null
 
-    @setClass 'in' if o.animate
-    @utils.defer => @setPositions o
+    @setClass 'in'  if animate
+    KD.utils.defer => @setPositions o
 
     @visible = yes
+
 
   getCorrectPositionCoordinates:(o={},positionValues,callback=noop)->
     # values that can/will be used in all the submethods


    @utils.wait 500, => @unsetClass 'animate-movement'

  setTitle:(title,o={})->
    unless o.html is no
      @wrapper.updatePartial title
    else
      @wrapper.updatePartial Encoder.htmlEncode title

  directionMap = (placement, gravity)->
    if placement in ["top", "bottom"]

    if @getOptions().animate then @setClass 'out' else @hide()

    @addListeners()
    KD.singletons.windowController.on 'ScrollHappened', @bound "hide"

    @once 'viewAppended', =>

      {view, title, html} = @getOptions()

      if view?
        @setView view
      else
        @setClass 'just-text'
        @setTitle title, html

      @parentView.emit 'TooltipReady'

