Sachverhalt:
Sachverhalt:
A. Die A._ AG (nachstehend: Klägerin) hat mehrere Tochtergesellschaften. Darunter die C._ AG mit Sitz in W._, welche insbesondere Kies und Beton verkauft.
Im Sommer 2000 beauftragte die Klägerin die B._ AG (nachstehend: Beklagte), gemäss ihrem Angebot vom 21. Juli 2000 zu überprüfen, ob bei den bestehenden Versicherungsverträgen der A._-Gruppe Prämieneinsparungen möglich sind, ohne dabei wichtige Risikodeckungen auszuschliessen. Gemäss dem Angebot der Beklagten oblag es ihr auch, die neuen Versicherungspolicen zu überprüfen.
In der Folge unterbreitete die Beklagte der Klägerin einen Neuordnungsvorschlag und Marktvergleiche per 1. Januar 2001. Zudem hat die Beklagte Versicherungen zur Offertenstellung eingeladen. Die X._ Versicherungen (nachstehend: X._) erstellte am 27. November 2000 eine Offerte für die Betriebshaftpflicht- und Produkthaftpflichtversicherung, welche die C._ AG als mitversichertes Unternehmen erfasste, jedoch im Gegensatz zum früheren Versicherungsvertrag keine Zusatzdeckung für Sachschäden an den mit dem gelieferten Kies oder Beton hergestellten Sachen aufwies. Diese Offerte wurde der Beklagten am 1. Dezember 2000 übergeben. Neben anderen Versicherungen hat auch die Y._-Versicherung eine Offerte für eine Betriebshaftpflichtversicherung erstellt, welche jedoch die genannte Zusatzdeckung aufwies. Die Beklagte liess der Klägerin diese Offerten zukommen und empfahl, das Angebot der Y._-Versicherung anzunehmen.
Die Klägerin nahm in der Annahme, alle Offerten würden die bisherige Versicherungsdeckung aufweisen, mit der X._ direkte Verhandlungen über die Höhe der Prämien auf. Nachdem die X._ eine Prämienreduktion gewährt hatte, entschied sich die Klägerin, mit ihr einen Versicherungsvertrag abzuschliessen. Am 1. bzw. 8. März 2001 erstellte die X._ eine Probepolice und am 16. Mai 2001 die definitive Police für die vom Zeit vom 1. Januar 2001 bis 31. Dezember 2003. Diese beiden Policen sind der Beklagten nicht zugestellt worden.
Im April 2001 lieferte die C._ AG mangelhaftes Kiesmaterial für den Strassenbau, was Behebungskosten von Fr. 113'519.-- verursachte. Die von der Klägerin mit der X._ abgeschlossene Betriebshaftpflichtversicherung deckte diesen Schaden nicht, weil das Risiko der Sachschäden an den mit geliefertem Material hergestellten Sachen vom Versicherungsschutz ausgeschlossen war.
Die Klägerin stellte sich auf den Standpunkt, die Beklagte sei für diesen Schaden haftpflichtig, weil er vor der Neuordnung der Versicherungsverträge versichert gewesen sei und es auf eine Sorgfaltspflichtverletzung der Beklagten zurückzuführen sei, dass das entsprechende Risiko nicht in die neue Police aufgenommen wurde.
Die Klägerin stellte sich auf den Standpunkt, die Beklagte sei für diesen Schaden haftpflichtig, weil er vor der Neuordnung der Versicherungsverträge versichert gewesen sei und es auf eine Sorgfaltspflichtverletzung der Beklagten zurückzuführen sei, dass das entsprechende Risiko nicht in die neue Police aufgenommen wurde.
B. Am 4. Juli 2002 belangte die Klägerin die Beklagte vor Bezirksgericht Plessur auf Zahlung von Fr. 113'519.-- nebst Zins zu 5 % seit 7. Juni 2002. Mit Urteil vom 19. August 2003 hiess das Bezirksgericht die Klage gut. Zur Begründung führte es zusammengefasst an, entgegen der Angabe der Beklagten habe der Umstand, dass die definitive Police das strittige Risiko ausdrücklich ausschloss, keine inhaltliche Änderung gegenüber der Offerte vom 27. November 2000 bedeutet, weil diese auf Allgemeine Vertragsbedingungen verwiesen habe, welche dieses Risiko ebenfalls ausschlossen. Dieser Ausschluss sei darauf zurückzuführen, dass die Beklagte ihren Auftrag unsorgfältig ausgeführt habe, weil sie entweder verkannt habe, dass die Klägerin ursprünglich gegen den eingetretenen Schaden versichert war oder sie die Einladung zur Offertenstellung mangelhaft abgefasst und zur Verbesserung nichts unternommen habe. Sodann sei die Beklagte durch die Führung der Vertragsverhandlungen der Klägerin mit der X._ nicht von der Schlussprüfung entbunden worden. Etwas anderes lasse sich auch nicht aus dem Brief der Beklagten vom 16. Dezember 2000 an die X._ lesen. Vielmehr habe die Beklagte darin angegeben, ihr Schlussauftrag sei, im Januar 2001 die Prüfung der einzelnen Versicherungspolicen. Damit stehe fest, dass die Beklagte nicht angenommen habe, sie sei von einer Schlussprüfung entbunden gewesen. Der Beklagten müsse daher auch als Sorgfaltspflichtverletzung angelastet werden, dass sie - obwohl sie gewusst habe, dass eine Police abgeschlossen werden müsse - nichts unternommen habe, um zu dieser zu gelangen, um die Schlussprüfung vorzunehmen.
Am 23. Dezember 2003 erhob die Beklagte beim Kantonsgericht Graubünden eine Berufung mit den Anträgen, das erstinstanzliche Urteil sei aufzuheben und die Klage sei abzuweisen. Das Kantonsgericht hiess die Berufung teilweise gut, hob das erstinstanzliche Urteil auf und reduzierte den von der Beklagten zu leistenden Betrag auf Fr. 75'679.35 nebst Zins zu 5 % seit 7. Juni 2002. Zur Begründung führte das Kantonsgericht zusammengefasst an, zwar habe die Klägerin nicht beweisen können, dass sie die Deckung des umstrittenen Risikos ausdrücklich gewünscht habe. Gemäss dem Schreiben der Beklagten vom 27. November 2000 sei diese Risikodeckung jedoch offensichtlich ein Thema zwischen den Parteien gewesen. Diese hätten deshalb diesbezüglich sensibilisiert sein müssen, zumal das fragliche Risiko durch die früheren Versicherungsverträge gedeckt gewesen sei. Das Bezirksgericht habe daher zu Recht angenommen, dass die Beklagte grundsätzlich dafür einstehen müsse, dass sie die Deckungslücke in der ihr am 1. Dezember 2000 übergebenen Offerte der X._ Versicherungen sorgfaltswidrig und schuldhaft nicht bemerkt habe. Insoweit könne auf die zutreffenden Gründe im angefochtenen Urteil verwiesen werden. Bezüglich der Nachkontrolle sei der Beklagten zuzugestehen, dass sie während der Verhandlungen der Klägerin mit der X._, welche zum Abschluss der Betriebshaftpflichtversicherung führten, vom Geschehen "abgekoppelt" worden sei. Dieser Umstand hätte sie aber um so mehr veranlassen sollen, die nachträgliche Prüfung der Police anzubieten, die gemäss ihrer Auftragsofferte die Schlussarbeit im Rahmen ihrer Dienstleistungen hätte bilden sollen. Insoweit sei dem Bezirksgericht darin zuzustimmen, dass die Beklagte sich nicht darauf berufen könne, von der Prüfung der Police ausgeschlossen worden zu sein. Allerdings treffe die Klägerin ein Selbstverschulden, da auch sie die Police mit Blick auf den Deckungsumfang hätte prüfen müssen. Der Ersatzanspruch sei daher in Anwendung von Art. 43 f. in Verbindung mit <ref-law> angemessen um einen Drittel zu kürzen.
Am 23. Dezember 2003 erhob die Beklagte beim Kantonsgericht Graubünden eine Berufung mit den Anträgen, das erstinstanzliche Urteil sei aufzuheben und die Klage sei abzuweisen. Das Kantonsgericht hiess die Berufung teilweise gut, hob das erstinstanzliche Urteil auf und reduzierte den von der Beklagten zu leistenden Betrag auf Fr. 75'679.35 nebst Zins zu 5 % seit 7. Juni 2002. Zur Begründung führte das Kantonsgericht zusammengefasst an, zwar habe die Klägerin nicht beweisen können, dass sie die Deckung des umstrittenen Risikos ausdrücklich gewünscht habe. Gemäss dem Schreiben der Beklagten vom 27. November 2000 sei diese Risikodeckung jedoch offensichtlich ein Thema zwischen den Parteien gewesen. Diese hätten deshalb diesbezüglich sensibilisiert sein müssen, zumal das fragliche Risiko durch die früheren Versicherungsverträge gedeckt gewesen sei. Das Bezirksgericht habe daher zu Recht angenommen, dass die Beklagte grundsätzlich dafür einstehen müsse, dass sie die Deckungslücke in der ihr am 1. Dezember 2000 übergebenen Offerte der X._ Versicherungen sorgfaltswidrig und schuldhaft nicht bemerkt habe. Insoweit könne auf die zutreffenden Gründe im angefochtenen Urteil verwiesen werden. Bezüglich der Nachkontrolle sei der Beklagten zuzugestehen, dass sie während der Verhandlungen der Klägerin mit der X._, welche zum Abschluss der Betriebshaftpflichtversicherung führten, vom Geschehen "abgekoppelt" worden sei. Dieser Umstand hätte sie aber um so mehr veranlassen sollen, die nachträgliche Prüfung der Police anzubieten, die gemäss ihrer Auftragsofferte die Schlussarbeit im Rahmen ihrer Dienstleistungen hätte bilden sollen. Insoweit sei dem Bezirksgericht darin zuzustimmen, dass die Beklagte sich nicht darauf berufen könne, von der Prüfung der Police ausgeschlossen worden zu sein. Allerdings treffe die Klägerin ein Selbstverschulden, da auch sie die Police mit Blick auf den Deckungsumfang hätte prüfen müssen. Der Ersatzanspruch sei daher in Anwendung von Art. 43 f. in Verbindung mit <ref-law> angemessen um einen Drittel zu kürzen.
C. Die Beklagte erhebt eidgenössische Berufung mit den Anträgen, das Urteil des Kantonsgerichtes sei aufzuheben und die Klage sei abzuweisen; eventuell sei die Sache zur Neubeurteilung an das Kantonsgericht Graubünden zurückzuweisen.
Die Klägerin schliesst auf Abweisung der Berufung, soweit darauf eingetreten werden könne.

Das Bundesgericht zieht in Erwägung:
Das Bundesgericht zieht in Erwägung:
1. 1.1 Im Berufungsverfahren ist das Bundesgericht an die tatsächlichen Feststellungen der letzten kantonalen Instanz gebunden, sofern sie nicht offensichtlich auf Versehen beruhen, unter Verletzung bundesrechtlicher Beweisvorschriften zu Stande gekommen oder wegen fehlerhafter Rechtsanwendung im kantonalen Verfahren zu ergänzen sind (Art. 63 Abs. 2 und 64 Abs. 2 OG). Die Partei, welche den vorinstanzlich festgestellten Sachverhalt berichtigt oder ergänzt wissen will, hat darüber genaue Angaben mit Aktenhinweisen zu machen. Eine Ergänzung setzt zudem voraus, dass entsprechende Sachbehauptungen bereits im kantonalen Verfahren prozessrechtskonform aufgestellt worden sind, von der Vorinstanz aber zu Unrecht für unerheblich gehalten oder übersehen worden sind, was wiederum näher anzugeben ist. Ohne diese Angaben gelten Vorbringen, welche über die tatsächlichen Feststellungen im angefochtenen Urteil hinausgehen, als unzulässige Noven (Art. 55 Abs. 1 lit. c OG). Für eine blosse Kritik an der Beweiswürdigung der Vorinstanz ist die Berufung nicht gegeben (<ref-ruling> E. 2c; <ref-ruling> E. 2a S. 486).
1.2 Die Beklagte ist nicht zu hören, soweit sie - ohne eine der genannten Ausnahmen von der Bindung des Bundesgerichts an die tatsächlichen Feststellungen der Vorinstanz geltend zu machen - von einem Sachverhalt ausgeht, der von diesen Feststellungen abweicht. Dies triff bezüglich der Behauptung der Beklagten zu, ihr sei der Auftrag entzogen worden, bevor Anträge angenommen oder Policen hätten kontrolliert werden können. Auf die Rüge, die Vorinstanz habe diesen Auftragsentzug nicht berücksichtigt, ist daher nicht einzutreten.
Unzulässig ist auch die Angabe der Beklagten, die Deckungslücke sei entstanden, indem bei den Kies- und Betonwerken der Versicherungsschutz für die Deckung von Sachschäden an den mit geliefertem Beton hergestellten Sachen unter Gewährung eines Rabatts von 30 % ausgeschlossen worden sei. Ein solcher Kausalzusammenhang zwischen dem Rabatt und dem Ausschluss des umstrittenen Risikos wurde von der Vorinstanz nicht festgestellt. Vielmehr ist diese davon ausgegangen, der Ausschluss habe gemäss den Allgemeinen Geschäftsbedingungen bereits für die Offerte der X._ vom 27. November 2000 gegolten. Inwiefern die Vorinstanz insoweit Bundesrecht verletzt haben soll, legt die Beklagte nicht dar.
Unzulässig ist auch die Angabe der Beklagten, die Deckungslücke sei entstanden, indem bei den Kies- und Betonwerken der Versicherungsschutz für die Deckung von Sachschäden an den mit geliefertem Beton hergestellten Sachen unter Gewährung eines Rabatts von 30 % ausgeschlossen worden sei. Ein solcher Kausalzusammenhang zwischen dem Rabatt und dem Ausschluss des umstrittenen Risikos wurde von der Vorinstanz nicht festgestellt. Vielmehr ist diese davon ausgegangen, der Ausschluss habe gemäss den Allgemeinen Geschäftsbedingungen bereits für die Offerte der X._ vom 27. November 2000 gegolten. Inwiefern die Vorinstanz insoweit Bundesrecht verletzt haben soll, legt die Beklagte nicht dar.
2. 2.1 Die Beklagte macht sinngemäss geltend, die Vorinstanz habe zu Unrecht eine Verpflichtung zur Nachkontrolle der strittigen Police bejaht. Zur Begründung stützt sich die Beklagte zum einen auf die unzulässige Behauptung, die Klägerin habe ihr den Auftrag entzogen. Zum anderen führt die Beklagte sinngemäss an, da die Klägerin entgegen der Empfehlung der Beklagten begonnen habe, ohne deren Unterstützung oder Begleitung mit der X._ über den Versicherungsvertrag zu verhandeln, sei die Beklagte gemäss der zutreffenden Feststellung der Vorinstanz vom Geschehen "abgekoppelt" worden. Dies werde dadurch bestätigt, dass der Beklagten das Resultat dieser Verhandlungen nie vorgelegt worden sei. Unter diesen Umständen habe für die Beklagte keinerlei Veranlassung bestanden, die Klägerin aufzufordern, ihr Policen zur Schlussprüfung zu unterbreiten, zumal die der Beklagten ausgestellte Vollmacht bis zum 31. Dezember 2000 befristet gewesen und die definitive Police vom 16. Mai 2001 damit erst nach Ablauf der Vollmacht ausgestellt worden sei.
2.2 Beruht ein Entscheid auf mehreren selbständigen Begründungen, so muss der Berufungskläger sämtliche Begründungen anfechten, um die in Art. 55 Abs. 1 lit. c OG umschriebenen Anforderungen an eine Berufung zu erfüllen (<ref-ruling> E. 1b S. 631; <ref-ruling> E. 2 S. 314).
2.3 Die Vorinstanz kam zum Ergebnis, die Beklagte habe ihre Sorgfaltspflicht verletzt, indem sie die Deckungslücke in der Offerte, welche ihr die X._ am 1. Dezember 2000 übergab, sorgfaltswidrig und schuldhaft nicht bemerkt habe. Damit ging die Vorinstanz davon aus, die Beklagte habe die Klägerin bereits in diesem Zeitpunkt auf diese Deckungslücke aufmerksam machen oder sie beheben müssen. Der weiteren Begründung der Vorinstanz, dass die Beklagte zudem verpflichtet gewesen wäre, die Beklagte auch noch später - d.h. im Rahmen der Prüfung der Police - auf diese Lücke hinzuweisen, kommt damit keine selbständige Bedeutung zu. Da sich die in E. 2.1. genannte Rüge der Beklagten alleine auf diese Zusatzbegründung bezieht, ist darauf nicht einzutreten, weil insoweit das Erfordernis der Anfechtung aller selbständiger Begründungen nicht erfüllt ist.
2.3 Die Vorinstanz kam zum Ergebnis, die Beklagte habe ihre Sorgfaltspflicht verletzt, indem sie die Deckungslücke in der Offerte, welche ihr die X._ am 1. Dezember 2000 übergab, sorgfaltswidrig und schuldhaft nicht bemerkt habe. Damit ging die Vorinstanz davon aus, die Beklagte habe die Klägerin bereits in diesem Zeitpunkt auf diese Deckungslücke aufmerksam machen oder sie beheben müssen. Der weiteren Begründung der Vorinstanz, dass die Beklagte zudem verpflichtet gewesen wäre, die Beklagte auch noch später - d.h. im Rahmen der Prüfung der Police - auf diese Lücke hinzuweisen, kommt damit keine selbständige Bedeutung zu. Da sich die in E. 2.1. genannte Rüge der Beklagten alleine auf diese Zusatzbegründung bezieht, ist darauf nicht einzutreten, weil insoweit das Erfordernis der Anfechtung aller selbständiger Begründungen nicht erfüllt ist.
3. Nach dem Gesagten hat die Beklagten keine zulässigen Rügen erhoben, weshalb auf ihre Berufung nicht einzutreten ist. Bei diesem Ausgang des Verfahrens wird die Beklagte kosten- und entschädigungspflichtig (Art. 156 Abs. 1 und 159 Abs. 2 OG). Bei der Bemessung der Parteientschädigung wird die Mehrwertsteuer im Rahmen des geltenden Tarifs pauschal berücksichtigt (Beschluss der Präsidentenkonferenz vom 8. Mai 1995).

Demnach erkennt das Bundesgericht:
Demnach erkennt das Bundesgericht:
1. Auf die Berufung wird nicht eingetreten.
1. Auf die Berufung wird nicht eingetreten.
2. Die Gerichtsgebühr von Fr. 4'500.-- wird der Beklagten auferlegt.
2. Die Gerichtsgebühr von Fr. 4'500.-- wird der Beklagten auferlegt.
3. Die Beklagte hat die Klägerin für das bundesgerichtliche Verfahren mit Fr. 5'500.-- zu entschädigen.
3. Die Beklagte hat die Klägerin für das bundesgerichtliche Verfahren mit Fr. 5'500.-- zu entschädigen.
4. Dieses Urteil wird den Parteien und dem Kantonsgericht von Graubünden, Zivilkammer, schriftlich mitgeteilt.
Lausanne, 29. November 2004
Im Namen der I. Zivilabteilung
des Schweizerischen Bundesgerichts
Der Präsident: Der Gerichtsschreiber: