viewutility
refactor