Hey James, all good questions. I don't think that last point is a particular goal (re: compile-out segwit), but not sure. I also have very scattered thoughts on this whole topic regarding structure and usage, and also a private branch with working BIP142 support and tests and partial BIP 173 support (but broken at the moment -- not even sure of the current state to be honest). The approach I was taking there was with a derived witness_address class, but figured it would be re-factored later during review. Given that this code is incomplete and a bit stale, I'm certainly not attached to it either, so I'd really like to see a solid implementation surface. I'm only pointing out that you've asked good questions and it's not clear to me at the moment either.