Changing app state is now generic