   localStorageName: "apparatus"
 
   saveToLocalStorage: ->
-    jsonString = @save()
+    jsonString = @getJsonStringOfProject()
     window.localStorage[@localStorageName] = jsonString
     return jsonString
 
   loadFromLocalStorage: ->
     jsonString = window.localStorage[@localStorageName]
     if jsonString
-      @load(jsonString)
+      @loadJsonStringIntoProject(jsonString)
 
   resetLocalStorage: ->
     delete window.localStorage[@localStorageName]

      return unless xhr.readyState == 4
      return unless xhr.status == 200
      jsonString = xhr.responseText
      @load(jsonString)
      @checkpoint()
      Apparatus.refresh() # HACK: calling Apparatus seems funky here.
    xhr.open("GET", url, true)
    xhr.send()


    return unless @isUndoable()
    @redoStack.push(@current)
    @current = @undoStack.pop()
    @loadJsonStringIntoProject(@current)
    @saveToLocalStorage()

  redo: ->
    return unless @isRedoable()
    @undoStack.push(@current)
    @current = @redoStack.pop()
    @loadJsonStringIntoProject(@current)
    @saveToLocalStorage()

  isUndoable: ->
