         @setRawDefault(keyPath, defaults)
       catch e
         console.warn("'#{keyPath}' could not set the default. Attempted default: #{JSON.stringify(defaults)}; Schema: #{JSON.stringify(@getSchema(keyPath))}")
-
-  setSchema: (keyPath, schema) ->
-    unless isPlainObject(schema)
-      throw new Error("Error loading schema for #{keyPath}: schemas can only be objects!")
-
-    unless typeof schema.type?
-      throw new Error("Error loading schema for #{keyPath}: schema objects must have a type attribute")
-
-    rootSchema = @schema
-    if keyPath
-      for key in keyPath.split('.')
-        rootSchema.type = 'object'
-        rootSchema.properties ?= {}
-        properties = rootSchema.properties
-        properties[key] ?= {}
-        rootSchema = properties[key]
-
-    _.extend rootSchema, schema
-    @setDefaults(keyPath, @extractDefaultsFromSchema(schema))
 
   extractDefaultsFromSchema: (schema) ->
     if schema.default?

    result = _.remove(arrayValue, value)
    @set(keyPath, arrayValue)
    result

  initializeConfigDirectory: (done) ->
    return if fs.existsSync(@configDirPath)

    deprecate 'Config::unobserve no longer does anything. Call `.dispose()` on the object returned by Config::observe instead.'

  ###
  Section: Internal to Core
  ###

  pushAtKeyPath: (keyPath, value) ->
