see https://www.lucidchart.com/documents/view/d2c35b6f-cbb6-48bd-be0d-80c86bb97a04