Based on https://docs.google.com/document/d/1q2EQ3JfDi0RZ8fDaca9Ac67fnPj3ReLwJL-bRuQLeUM/edit#
Based on https://docs.google.com/document/d/1X0kBpPsN1pkKyqKfX3JTXB7Tam2rgaYFkmHgV0TeP7Q/edit#