Mostly for separation of the access between the derived classes.
Can be reviewed commit-wise or at once.