Move functions for external use out of 'protected'