not actually private, should probably be labeled 'protected'