avoid allocating memory