       options            or= {}
       appOptions           = KD.getAppOptions name
       appParams            = options.params or {}
-      defaultCallback      = -> createOrShow appOptions, appParams, callback
+      defaultCallback      = createOrShow.bind this, appOptions, appParams, callback
       kodingAppsController = KD.getSingleton("kodingAppsController")
 
       # If app has a preCondition then first check condition in it

        KD.getSingleton("kodingAppsController").putAppResources appInstance, callback
      callback? appInstance

  show:(appOptions, callback)->

    appInstance = @get appOptions.name

    if appOptions.background
      return @utils.defer -> callback? appInstance

    appView     = appInstance.getView?()
    return unless appView


  open: do ->

    createOrShow = (appOptions = {}, appParams, callback = noop)->

      name = appOptions?.name
      return @handleAppNotFound()  unless name

      appInstance = @get name
      cb = if appParams.background or appOptions.background
      then -> KD.utils.defer callback
      else @show.bind this, name, appParams, callback

      if appInstance then cb() else @create name, appParams, cb

    (name, options, callback)->

