functional user_state