handle multiple backends properly