Added extra implementation to the virtual_device
Added virtual device implementation and test files.