move responsibility for view changing