data source class refactoring