Code review comments for !1545
What does this MR do?
Some suggestions after code reviewing !1545 (merged)
Why was this MR needed?
Some changes were hard to explain and I wasn't able to explain my concerns properly so there was a lot of back and forth.
Are there points in the code the reviewer needs to double check?
Each commit, it has a title and a body explaining the suggestion. The most important commit is dd931ef2 which does a big refactor on the life cycle of each referee