How is this called? Should it be @PackageScope or private? I'm not sure if this is good to expose to users.