trace across renames

heads up @grosser, this cleans up a lot of code but probably will conflict heavily with your work