Changed interface structure for providers
Added helper methods to replace invalid characters from filename or path
Using safe filename patterns