initial refactor of OfflineFeaturesManager