separated datasource out into the settings interface class