added fusion_alloc function