public/private mechanism