Revert "all/mostly done"

This reverts commit 9982cc5196e623833ad4793607e03b9cb339ef82.
Revert "Revert "all/mostly done""

This reverts commit 50e91d1ea085873b39d88b685e03df4e62468199.