per chriss suggestion return vectors of data, do not modify dfs in place