organizing the AppViewModel