Full review (do not merge)

Fix attempt: 48ff79ee6c0e270d900f47