Quite a bit more rewriting
A complete draft!