better updating, app state changes