update view. add cache