potential improvement: add 'private' annotation ?