you might as well only accept tabledatasource instead of general datasource right now