LGTM with minor comments.
Any reason this isn't nullptr? It looks like you never use the initial value.
Does the order really matter? Anyway, if you think it does, I'm fine with this to keep it NFC.