   editSessions: null
   ignoredPathRegexes: null
 
-  # Public: Establishes a new project at a given path.
+  ### Internal ###
+
+  serialize: ->
+    deserializer: 'Project'
+    path: @getPath()
+
+  @deserialize: (state) ->
+    new Project(state.path)
+
+  destroy: ->
+    editSession.destroy() for editSession in @getEditSessions()
+
+  ### Public ###
+
+  # Establishes a new project at a given path.
   #
   # path - The {String} name of the path
   constructor: (path) ->

    else
      @buildBuffer(null, text)

  # Public: Given a file path, this sets its {Buffer}.
  #
  # filePath - A {String} representing a path
  # text - The {String} text to use as a buffer

    filePath = fsUtils.join(@getPath(), filePath) unless filePath[0] == '/'
    fsUtils.absolute filePath

  # Given a path, this makes it relative to the project directory.
  #
  # filePath - The {String} name of the path to convert
  #
