Refactor backend-specific clients to use a new Backend
interface
#515
+222
−109
Backend
interface
#515