added stack allocator