anchor.diff:  
     @override
     AppRoutePath get currentConfiguration {
  -    final selectedBook = _appState.selectedBook;
  -    final selectedAuthor = _appState.selectedAuthor;
  +    final selectedBookId = _appState.selectedBookId;
  +    final selectedAuthorId = _appState.selectedAuthorId;
       final showAuthorsPage = _appState.showAuthorsPage;
  +
       if (showAuthorsPage) {
         return AuthorsRoutePath();
       }
  -    if (selectedAuthor != null) {
  -      return AuthorRoutePath(_appState.getAuthorId(selectedAuthor));
  -    }
  -    if (selectedBook != null) {
  -      return BookRoutePath(_appState.getBookId(selectedBook));
  -    }
  +
  +    if (selectedAuthorId != null) {
  +      return AuthorRoutePath(selectedAuthorId);
  +    }
  +
  +    if (selectedBookId != null) {
  +      return BookRoutePath(selectedBookId);
  +    }
  +
       return AppRoutePath();
     }
   
  
positive.code:           MaterialPage(
              key: ValueKey('BooksListPage'),
              child: BooksListScreen(
                books: _appState.books,
                onTapped: _handleBookTapped,
              ),
            ),
  
negative.code:   @override
    Future<void> setNewRoutePath(AppRoutePath path) async {
      if (path is AuthorRoutePath) {
        _appState.selectedAuthorId = path.id;
      } else if (path is AuthorsRoutePath) {
        _appState.showAuthorsPage = true;
      } else if (path is BookRoutePath) {
        _appState.selectedBookId = path.id;
      } else {
        _appState.clearSelectedBook();
        _appState.clearSelectedAuthor();
  