created new class for basic provider so it is separated from the plugin class.