working viewmodel, need to fix toModel test and add toJSON method