Improve Base Controllers

Modifications to the Base Controller and Private Controller to refactor code
Public Only Controller also created for controllers that should be
unavailable to authenticated users