refactor dataframe; rowheaders aren't actually unique