Some functions are now 'protected'

Allows more extending flexibility then when private.