CHEF-3949: refactoring file providers (rebase+squashed commits)