use ctx.alloc().buffer(...)