vi now use func_vi