refactored SaveFunction
split AccessToSmoothDirError into ReadFromSmoothDirError/WriteToSmoothDirError, added Path parameter
renamed PluginErrorException -> PluginException