memory allocation chain