add and use zmalloc