linear allocator