                 ret[k] = args[i][0]
               else
                 ret[k] = args[i]
-            ret.options     = @options
-            ret.loggedIn    = @loggedIn()
-            ret.isAdmin     = @sandbox.isAdmin
-            ret.debug       = @sandbox.config.debug
-            ret.renderCount = @_renderCount
+          templateDeferred = @sandbox.template.load(@templates, @ref)
+          templateDeferred.done (tpls)=>
             @_templates     = tpls
+          readyDfd = $.when(widgetDeferred, templateDeferred)
+          readyDfd.fail (err)=>
+            console.error("Error in Building Render Context", err.message, err)
+            @renderError.call(@, err.message, err)
+            dfd.reject(err)
+          readyDfd.done ()=>
             dfd.resolve(ret)
 
         catch e

        onDataError = (datasourceName, err)->
          console.log "An error occurred with datasource #{datasourceName}", err
        @_renderCount ?= 0
        @_renderCount++
        ret = {}
        dfd = @sandbox.data.deferred()
        datasourceErrors = {}
        try

              datasourceErrors[k] = err
              promiseDfd.resolve(handler err)
            promiseDfd
          @data = {}
          widgetDeferred = @sandbox.data.when.apply(undefined, promises)
          widgetDeferred.done ()=>
            args = slice.call arguments
            _.map keys, (k,i)=>
              @data[k] = args[i]
              if _.isFunction args[i]?.toJSON
