change CircuitBreaker into interface