modify alloc function