Decoupling the backend