       aOptions = null
     aOptions = @getOptions(aOptions)
     @_loadContent aOptions, (err, result)=>
-      @contents = result unless err
+      @contents = result unless err or aOptions.overwrite is false
       done(err, result)
     @
 
   loadContentSync: (aOptions)->
     if isFunction(@_loadContentSync)
       aOptions = @getOptions aOptions
-      @contents = result = @_loadContentSync aOptions
-    else
+      result = @_loadContentSync aOptions
+      @contents = result if aOptions.overwrite isnt false
+    else
+      ### !pragma coverage-skip-next ###
       throw new TypeError 'loadContentSync not implemented'
     result
 

      checkValid = aOptions.validate isnt false
      @stat = @_loadStatSync(aOptions) unless @stat?
      @validate() if checkValid
      if aOptions.read and @stat? and !@contents?
        if isFunction(@_loadContentSync)
          @contents = @_loadContentSync(aOptions)
        else
          throw new TypeError '_loadContentSync not implemented'
      else
        @contents
    else
      throw new TypeError '_loadStatSync not implemented'

  _loadStat: (aOptions, done)->

      done = aOptions
      aOptions = null
    aOptions = @getOptions(aOptions)
    @_loadStat aOptions, (err, stat)=>
      @stat = stat unless err or aOptions.overwrite is false
      done(err, stat)
    @
  loadStatSync: (aOptions)->
    aOptions = @getOptions(aOptions)
    if @_loadStatSync
      result = @_loadStatSync aOptions
      @stat = result if aOptions.overwrite isnt false
    else
      ### !pragma coverage-skip-next ###
      throw new TypeError '_loadStatSync not implemented'
    result

