Refactor DataSource