first view, model and viewmodel classes