Gda cherry pick

Cherry-picking some stuff from the GDA fork, and cleaning up some stuff as I go.
Ready for review.  I accidentally pushed the earlier portion of the branch along with another PR.