Make viewmodel a proper Typescript class
clean up