Do NOT call hdestroy()