Support multiple backends and add alloc backend

s/%s/%v/ for consistency