At present, none of these are public or returned to users (including old origin) they are just consumed internally.

It seemed to me if you have one thing that's a complex struct it should be the `callSite` and then sometimes you make a string representation that should be called `callSiteString`. For instance the user override I also changed to `callSiteString` because really that is what the user is overriding... 

Anyways I don't really feel strongly. We could rename `val callSite` here to `val callSiteInfo` and then rename all of the `callSiteString` things to `callSite` which bascially reverts it to how it was before. Would you prefer that?