reduce coupling to backend