virtual device should be properly initialised now..
need to check corner cases.