added Abstract provider and some traits
more importer/provider refactoring