added UiState class to differentiate with GameState