Finished implementing datasource (untested)