Some infrastructure for multiple backends