Heavy refactoring of dataSource