Support multiple backends and add alloc backend

Good catch. I have no idea where that came from.