why use protected here? these should all be private.