Did some architectural changes. Maintained the AppState inside AppModel. The presenter and router both look at the AppModel. The router changes the app state's mode. The presenter listens to the events on the model and takes actions accordingly.