less memory allocations