abstract away the backend from OpenService