Reworked the DataSource concept