refactoring and Data Source extraction