call updateText directly instead of dirty system