Use trait for logic, make fetch and get protected

We need this to upgrade frontend. The methods have to be protected so that we can use the circuit breaker, etc.