split IBackend in smaller interfaces