Implemented: deteleAll, get for each DataSource; Refactored: moved cursor-related logics to DataSource