started a viewmodel architecture for the different views