[Ready] Item access refactor

See #9517
I kind of hate this, what's wrong with having const and non-const iterators, and calling the appropriate accessor to get them?