add top_alloc interface