add VirtualInput.cs