refactored CinderDataSource