- Each allocation can be a different size (but should be smaller than the chunk size). - Result can be looped over in order of allocation. - Allocations are aligned to pointer size to avoid unaligned reads.