added ability to split ViewModel and interface

was not able to place ViewModel interface and its implementation into
different assemblies