improve virtualinput