Support multiple backends and add alloc backend

do you need to register SIGINT too?