namespace Fab; public abstract class DataProvider { private IDataSource? Source { get; set; } public DataStore? Store { get; set; } public DataProvider(IDataSource? Source) { this.Source = Source ?? throw new Exception("No valid data source provided."); this.Store = Source.ToStore(); } } public class DataStore { }