layout view refactor