This has made your PR overly complex and should be a separate PR - as a concept, I think I would prefer to see #203 in its stead.