improve stack alloc