divide big run_vpn() into two parts: init and run