added the DataSource class