implement provider for files

there are some thing that need still to be fixed