As I commented before. Should we be keeping UI state in here?