Added generic data list source to make simple implementations easier.