playing with different ways of managing ui state