Inheritance pattern established for MainViewModel, flow needs work as it is convoluted