user view refactored struture