redoing the flow of the app so it's more clear what is going on