
923 P.2d 995 (1996)
129 Idaho 288
RECORD STEEL & CONSTRUCTION, INC., an Idaho corporation, Plaintiff-Appellant,
v.
MARTEL CONSTRUCTION, INC., a Montana corporation, Defendant-Respondent.
MARTEL CONSTRUCTION, INC., a Montana corporation, Counterclaimant,
v.
RECORD STEEL & CONSTRUCTION, INC., an Idaho corporation, Counterdefendant.
No. 21936.
Court of Appeals of Idaho.
July 17, 1996.
Rehearing Denied August 27, 1996.
Petition for Review Denied October 10, 1996.
*996 Coughlan & Coughlan, Boise, for appellant. Joseph Coughlan argued.
Ringert, Clark Chtd., Boise, for respondent. David Hammerquist argued.
LANSING, Judge.
Record Steel & Construction, Inc. brought this action against Martel Construction, Inc. for breach of contract. The complaint was dismissed by the magistrate court, and the involuntary dismissal was affirmed by the district court acting in its appellate capacity. *997 Record Steel now appeals from that decision. Record Steel also challenges the amount of attorney fees awarded to Martel by both the trial court and the district court.

I.

FACTS AND PROCEDURAL BACKGROUND
Martel was the general contractor on a construction project. By a written contract dated July 3, 1991, Martel subcontracted with Record Steel to install foundation rebar for the project (the rebar contract). This contract specified that disputes regarding its performance would be submitted to arbitration. In November 1991, before the work under the rebar contract was completed, the parties entered into an oral contract for Record Steel to erect structural steel at the same job site (the structural steel contract). Upon Record Steel's completion of the structural steel work, Martel paid in full all of Record Steel's invoices for the structural steel contract, totaling $107,512.14, but Martel subsequently found fault with the quality of Record Steel's work. To recoup funds expended to correct the structural work, Martel withheld $4,903.97 from payment otherwise owed to Record Steel under the rebar contract.[1]
Record Steel filed a complaint in the magistrate division of the district court, alleging that Martel had breached the structural steel contract by failing to make full payment thereunder. Martel filed a motion to dismiss or, alternatively, to compel arbitration, taking the position that the structural steel work fell within the written rebar contract, which provided for mandatory arbitration. This motion was resisted by Record Steel. The magistrate found that there existed two distinct contracts between the parties, a written contract for rebar, which required arbitration, and an oral structural steel contract with no arbitration term. Since the lawsuit was brought on the oral structural steel contract, the motion to compel arbitration was denied. Following the denial of its motion, Martel filed an answer denying liability and a counterclaim for the expenses it allegedly incurred in correcting and completing the structural steel work performed by Record Steel. Record Steel then moved the court for an order prohibiting Martel from introducing at the trial in this case any evidence relating to Record Steel's performance of the rebar contract and requiring arbitration of disputes arising from the rebar contract. Martel stipulated that this motion be granted, and an order was entered accordingly.
In the subsequent arbitration proceeding on the rebar contract disputes, Record Steel sought recovery only of the amount retained by Martel due to alleged deficiencies in Record Steel's performance of the rebar contract; Record Steel expressly declined to pursue in the arbitration proceeding any claim for the sums at issue here, which Martel had retained as compensation for Record Steel's alleged poor or incomplete structural steel work. In the arbitration, Record Steel expressed the view that the latter retainage was not involved in the arbitration because it related to work under the structural steel contract which contained no provision for arbitration.
A court trial was scheduled in the present case, but in lieu of presentation of testimony, the parties submitted the matter to the court for decision on stipulated facts. The stipulated facts included the following: (a) that Martel had paid all amounts that were due Record Steel for work on the structural steel contract; (b) that the sum at issue in this litigation, $4,903.97, was "part of the retention monies that were held back on the written [rebar] contract"; and (c) that Martel's refusal to pay that sum was based upon alleged expenses Martel incurred in repairing and completing allegedly deficient work performed by Record Steel under the structural steel contract. Following submission of the stipulated facts, Martel moved to dismiss Record Steel's complaint on the ground that although the complaint alleged breach of the structural steel contract, Record Steel admitted that it had been paid in full for all work performed and materials supplied under that *998 contract. The trial court, treating Martel's motion as one for involuntary dismissal under I.R.C.P 41(b), granted the motion and dismissed the action on the ground that Martel had fully performed its obligations under the contract upon which the action was brought. The magistrate also found Martel to be the prevailing party and granted Martel's request for attorney fees and costs pursuant to I.C. § 12-120(1) and (3).
Record Steel appealed to the district court, which affirmed the magistrate's Rule 41(b) dismissal and awarded Martel attorney fees and costs on appeal. Record Steel now appeals from that decision, arguing (a) that the magistrate erred in holding that the stipulated facts precluded recovery by Record Steel; (b) that the record shows that Martel breached the implied covenant of good faith and fair dealing; (c) that principles of equitable estoppel, quasi-estoppel and waiver bar Martel from asserting that it has fully performed the structural steel contract; and (d) that the awards of attorney fees to Martel by the magistrate and the district court are excessive.

II.

ANALYSIS

A. The Alleged Breach of Contract
When reviewing an intermediate appellate decision of the district court, we examine the record independent of, but with due regard for, the district court's decision. Shurtliff v. Northwest Pools, Inc., 120 Idaho 263, 266, 815 P.2d 461, 464 (Ct.App.1991); Matter of McNeely, 119 Idaho 182, 186, 804 P.2d 911, 915 (Ct.App.1990). An appellate court will uphold factual findings made in granting a motion for involuntary dismissal so long as the findings are not clearly erroneous; however, it will review freely any application of the law to the facts found. Staggie v. Idaho Falls Consol. Hosps., Inc., 110 Idaho 349, 351, 715 P.2d 1019, 1021 (Ct.App. 1986).
In Record Steel's complaint it is the structural steel contract, and no other, that is alleged to have been breached by Martel. The rebar contract is not referenced anywhere in the complaint. The magistrate dismissed Record Steel's action because Record Steel stipulated that it had been paid in full on the structural steel contract, making it impossible to find a breach of that contract by Martel. The magistrate reasoned that if Martel had breached any contract between the parties, it was the separate rebar contract, and that any claim of Record Steel pertinent to that contract was not before the court but, rather, had been the subject of the arbitration proceeding. We find no error in this determination.
At the outset of the litigation, Martel took the position that all of the services performed by Record Steel were pursuant to a single contract, the written rebar contract of July 3, 1991, and that the structural steel work constituted additional work performed pursuant to the written contract. Record Steel, however, opposed that position and insisted that there were two separate contracts, one written and one oral. The magistrate accepted Record Steel's position, found that two distinct contracts existed and, in accordance with the parties' subsequent stipulation, directed arbitration of disputes under the written rebar contract. For reasons that are not clearbut perhaps because it wished to avoid arbitration of this disputeRecord Steel framed its claim in the present case as one arising under the structural steel contract. Nonetheless, Record Steel stipulated to having received full payment for its services under that agreement. The contract on which Record Steel has not been paid its full charge is the rebar contract. On the stipulated facts, if Martel breached any contract, it was the rebar contract. As a result, the arbitration proceeding on the rebar contract was the proper forum in which Record Steel should have pursued its claim for the retained monies. Once Martel paid all amounts due for the structural steel work, Martel's obligation to Record Steel under that contract was discharged.
Record Steel seems to confuse the factual basis for its cause of action with the factual basis for Martel's asserted defense. As a defense and counterclaim, Martel asserted a right of setoff for damage allegedly arising from Record Steel's breach of the structural *999 steel contract. Martel's allegation that Record Steel breached the structural steel contract does not transform Record Steel's cause of action into one for breach of the structural steel contract by Martel.

B. The Implied Covenant of Good Faith and Fair Dealing
We also find no merit in Record Steel's assertion that Martel breached the implied covenant of good faith and fair dealing. The implied covenant of good faith and fair dealing applies to all contracts. Luzar v. Western Surety Co., 107 Idaho 693, 696, 692 P.2d 337, 340 (1984). It is a covenant that is implied by law, and it "obligates the parties to cooperate with each other so that each may obtain the full benefit of performance." Idaho First Nat. Bank v. Bliss Valley Foods, 121 Idaho 266, 288, 824 P.2d 841, 863 (1991), quoting Badgett v. Security State Bank, 116 Wash.2d 563, 569, 807 P.2d 356, 360 (1991). The implied covenant "requires only that the parties perform in good faith the obligations imposed by their agreement." Id.
In this case, the stipulation that Martel has fully performed its obligations under the structural steel contract disposes of Record Steel's claim of breach of the implied covenant of good faith and fair dealing. Record Steel has received all of the benefits to which it is entitled under that contract. As stated above, if a breach by Martel occurred, it was a breach of the rebar contract, but that issue was not before the magistrate.

C. Estoppel, Quasi-Estoppel and Waiver
We turn now to Record Steel's assertion that the doctrines of equitable estoppel, quasi-estoppel and waiver prevent Martel from asserting that its obligations under the structural steel contract have been discharged. These doctrines will be considered together. The elements of equitable estoppel are: (1) a false representation or concealment of a material fact made with actual or constructive knowledge of the truth; (2) the party asserting estoppel did not know and could not have discovered the truth; (3) an intent that a misrepresentation or concealment be relied upon; and (4) the party asserting estoppel relied on the misrepresentation or concealment to his or her prejudice. Twin Falls Clinic & Hosp. Bldg. Corp. v. Hamill, 103 Idaho 19, 22, 644 P.2d 341, 344 (1982); Young v. Idaho Department of Law Enforcement, 123 Idaho 870, 874-75, 853 P.2d 615, 619-20 (Ct.App.1993). The one relying upon the acts of the party to be equitably estopped must be excusably ignorant of the true facts. Alder v. Mountain States Telephone & Telegraph Co., 92 Idaho 506, 511, 446 P.2d 628, 633 (1968). "The doctrine of quasi-estoppel applies when a person asserts a right inconsistent with a position previously taken by him, with knowledge of the facts and his rights, to the detriment of the person seeking to apply the doctrine." Young, 123 Idaho at 875, 853 P.2d at 620. Quasi-estoppel does not require a false representation. Rather, it is a doctrine designed to prevent one party from gaining an unconscionable advantage by changing positions. Mitchell v. Zilog, Inc., 125 Idaho 709, 715, 874 P.2d 520, 526 (1994); Young, 123 Idaho at 875, 853 P.2d at 620. A waiver is a voluntary and intentional relinquishment of a known right or advantage. Frontier Fed. Sav. & Loan v. Douglass, 123 Idaho 808, 812, 853 P.2d 553, 557 (1993), cert. denied, 510 U.S. 917, 114 S.Ct. 309, 126 L.Ed.2d 257 (1993); Margaret H. Wayne Trust v. Lipsky, 123 Idaho 253, 256, 846 P.2d 904, 907 (1993). Waiver will not be inferred; the intent to waive must clearly appear. Id.; Riverside Development Co. v. Ritchie, 103 Idaho 515, 520, 650 P.2d 657, 662 (1982). The party asserting waiver must show that he acted reasonably in reliance upon it and that he has altered his position to his detriment. Margaret H. Wayne Trust, 123 Idaho at 256, 846 P.2d at 907.
As we understand Record Steel's rather opaque argument, it asserts that by taking the position that monies were withheld due to improper work on the structural steel contract, Martel induced Record Steel to file its lawsuit to recover under that contract, and that Martel cannot now "change horses in the middle of the stream" by asserting that no monies are owed to Record Steel under such contract. The magistrate correctly rejected this contention. There is no evidence of a misrepresentation, the taking *1000 of inconsistent positions or waiver on Martel's part, nor of any basis for reasonable reliance by Record Steel. There is nothing inconsistent about one party to a contract taking the position that it has fully performed its obligations and that the other party is in breach. Throughout this litigation, and even before the lawsuit was filed, Martel consistently asserted that it was withholding payment under the written rebar contract as compensation for Record Steel's deficient performance of the structural steel work. After the magistrate rejected Martel's position that all of the work was performed pursuant to a single written contract and that the entire dispute was subject to arbitration, Martel defended the action based upon the magistrate's ruling. Martel never altered its position that it had paid in full for the structural steel work, nor were any material facts concealed by Martel. Before initiation of the lawsuit, Record Steel knew or could have readily ascertained that all of its invoices for the structural steel materials and services had been paid and that the amounts retained by Martel were deducted from payments on the rebar contract. Therefore, there is no basis for application against Martel of principles of equitable estoppel, quasi-estoppel or waiver.

D. Attorney Fees Under I.C. § 12-120(1) and (3)
We turn finally to the issue of attorney fees. Both the trial court and the district court awarded attorney fees to Martel pursuant to I.C. § 12-120(1) and (3).[2] Record Steel does not question Martel's entitlement to attorney fees under this statute if Martel is ultimately determined to be the prevailing party, but Record Steel contends that the magistrate should not have included fees incurred by Martel in presenting its unsuccessful motion to dismiss or, alternatively, to compel arbitration. Record Steel also asserts that the amount of attorney fees awarded by the magistrate and by the district court on appeal are unreasonable.
We cannot accept Record Steel's argument that Martel may not recover attorney fees incurred on its unsuccessful motion. The attorney fees awarded must be reasonable overall, but the trial court is not required to excise fees relating to each skirmish that may have been lost during the litigation by the party who ultimately prevailed in the case. See Irwin Rogers Insurance Agency, Inc. v. Murphy, 122 Idaho 270, 276-277, 833 P.2d 128, 134-35 (Ct.App.1992).
The amount of attorney fees to be awarded under I.C. § 12-120 is committed to the trial court's discretion. Kelly v. Hodges, 119 Idaho 872, 876, 811 P.2d 48, 52 (Ct.App. 1991); Spidell v. Jenkins, 111 Idaho 857, 860, 727 P.2d 1285, 1288 (Ct.App.1986). Having reviewed the record in this case, we are persuaded that the magistrate did not abuse his discretion in determining that, due to Record Steel's unique theory of the case, the amount claimed by Martel for fees was reasonable. Nor do we find any abuse of discretion by the district court with respect to the amount of attorney fees granted to Martel on appeal. Therefore, this Court will not disturb the attorney fee awards made by the courts below.
As the prevailing party in this appeal, Martel is also entitled to recover its attorney fees incurred in the proceedings before this Court pursuant to I.C. § 12-120(1) and (3).

CONCLUSION
The magistrate's order dismissing Record Steel's complaint against Martel is affirmed, *1001 as are the orders of the magistrate and the district court granting attorney fees to Martel. Martel is awarded its costs and attorney fees on appeal in accordance with I.C. § 12-120(1) and (3) in an amount to be determined pursuant to I.A.R. 40 and 41.
WALTERS, C.J., and PERRY, J., concur.
NOTES
[1]  Martel also withheld from payments on the rebar contract sums related to a separate dispute over the amount of rebar material that was installed. That retainage is not at issue in this case.
[2]  Idaho Code Section 12-120 provides in pertinent part:

(1) Except as provided in subsection (3) of this section, in any action where the amount pleaded is twenty-five thousand dollars ($25,000) or less, there shall be taxed and allowed to the prevailing party, as part of the costs of the action, a reasonable amount to be fixed by the court as attorney fees.
(3) In any civil action to recover on ... [a] contract relating to the purchase or sale of goods, wares, merchandise, or services and in any commercial transaction unless otherwise provided by law, the prevailing party shall be allowed a reasonable attorney fee to be set by the court, to be taxed and collected as costs.
