refactoring cdm data source to cdm source