added nodeviewmodel and some tests