We need to take this as an opportunity to revive a Java interface InterfaceDriver.  Here's what I'm thinking at first glance... Have an extensible architecture where whatever interfaces (Selenium, mobile, native) implement certain routines like 'go', 'getControl', etc.  The VInterface will then contain -- not a WebDriver -- but an InterfaceDriver or IDriver, whatever...  For each interface that we support, we'd need to implement the interface routines defined in InterfaceDriver.  In the end, we add IDriver, SeleniumDriver, IosDriver, AndroidDriver.  What do you think?