Make some methods package-protected to avoid the need for synthetic accessors. TODO consider whether to do so for the fields as well