Prepare to support multiple backends