Why make these and the other fields protected? When not use getters in a subclass?