Are you sure we shouldn't make the types `public` instead?