refactor with App router and AppView