 
   loadData: ->
     @getLocation()
+      .then thenable @cacheLocation
       .then @createUrlFromLocation
       .then @getWeather
       .then JSON.parse
-      .then @cacheWeather
-      .then @displayWeather.bind this
-      .then => @initialized = true
-      .then => @update @data
+      .then thenable @cacheWeather
+      .then thenable @renderCity
+      .then thenable @renderForecast
+      .then thenable => @initialized = true
+      .then @update
       .catch (err) =>
         log err
         @showError err

      else
        navigator.geolocation.getCurrentPosition (location) ->
          log 'got location', location
          localStorage.setItem 'locationCache', JSON.stringify location
          resolve location
        , reject, config.location

  getWeather: (url) ->
    new Promise (resolve, reject) ->

  processData: -> return

  updateTemperatureUnits: ->
    @getLocation()
      .then @cacheLocation
      .then @createUrlFromLocation
      .then @getWeather
      .then JSON.parse
      .then (data) =>
