private categories and protocols