In sane software design, you don't expose internal state, and use accessor methods like these to query it from the outside. I know the code currently violates it almost everywhere, but that doesn't mean we need to continue that practice.