Some refactoring and allow no backends
Return a proper 503 if there is no backend available. #7