@Override
    public boolean equals(Object o) {
        if (o == null || !(o instanceof Book)) return false;
        final Book book = (Book) o;

        return Objects.equal(isbn, book.isbn) &&
                Objects.equal(title, book.title) &&
                authors.containsAll(book.authors) &&
                book.authors.containsAll(authors) &&
                Objects.equal(description, book.description) &&
                Objects.equal(pages, book.pages) &&
                Objects.equal(publishDate, book.publishDate);
    }