       url = [baseUrl,decodeURIComponent( $.param( params ) )].join('?')
       return url
 
-    isInitialized = ->
-      !(_.isEmpty _self.config.ssoSessionId or _.isEmpty _self.config.kpisTemplates or _.isEmpty _self.config.currentDashboardId)
-
     #====================================
     # Load and initialize
     #====================================
+
+    # Methods can tap into this promise to receive resolution on initialization.
+    @initialized = $q.defer()
 
     @load = (force=false) ->
       deferred = $q.defer()

    # Will be called by ImpacDashboardsSvc when the current Dhb is set
    # (required because we need the list of organizations uids to properly load the available kpis fron #INDEX)
    @initialize = (dashboard) ->
      _self.load().then( ->
        _self.config.currentDashboardId = dashboard.id


                template.source = 'local'
                _self.config.kpisTemplates.push template

            _self.initialized.resolve(true)
          (error) ->
            $log.error('ImpacKpisSvc - cannot retrieve kpis templates list', error)
            _self.initialized.reject(false)
        )
      )
      return _self.initialized.promise

    #====================================
    # CRUD methods
