zero-allocation until first push