don't you need this alloc to be vlen + 1?