separate out tableview datasource