is `public` needed here?