all these methods should be protected to avoid calling from another plugin, extenders can then expose them as required