
311 N.W.2d 194 (1981)
ROBERTSON COMPANIES, INC., Plaintiff, Appellant and Cross-Appellee,
v.
Harold KENNER, Defendant, Appellee and Cross-Appellant.
Civ. No. 9953.
Supreme Court of North Dakota.
October 23, 1981.
*196 Dahl, Greenagel & Geiger, Grafton, and Brink, Sobolik, Severson & Vroom, Hallock, Minn., for plaintiff, appellant and cross-appellee; argued by Roger Malm, Hallock, Minn.
Kenner, Halvorson & Sturdevant, Minot, for defendant, appellee and cross-appellant; argued by Harris P. Kenner, Minot.
PEDERSON, Justice.
Three basic questions presented in this case are: (1) was the unrequested remedy of rescission properly granted; (2) does the remedy of rescission preclude allowing damages for lost profits; and (3) was there sufficient evidence to prove lack of substantial performance. In addition, we are asked to determine whether or not the trial court properly granted interest on loss of profits.
We conclude that the unrequested remedy of rescission was properly granted and that rescission and damages are not mutually exclusive remedies under the Uniform Commercial Code. We further conclude that there was sufficient evidence to prove lack of substantial performance of Robertson's obligation, and that interest was properly granted on the award of damages. The judgment is affirmed.
In June, 1977, Robertson Companies, Inc. (Robertson), contracted with Kenner to build two galvanized steel buildings on Kenner's farm.[1] These new buildings were to be completed for October storage of the 1977 sunflower crop. The contract specified that Kenner was to lay the two concrete slabs for the buildings. The concrete slabs were apparently ready for further construction by the end of July, 1977. In mid-September, 1977, a contractor (Contractor I) hired by Robertson appeared at the Kenner farm to proceed with the construction. Contractor I visually inspected the concrete slabs and concluded that one of the slabs was unfit for immediate construction. Whereupon, Contractor I and his crew departed from the Kenner farm, never to return. The deficiencies in the one slab required only minor repairs and were corrected in a couple of hours. The other slab did not require any repair and was ready for construction when Contractor I first arrived at the Kenner farm.
At the time of the 1977 sunflower harvest, the steel buildings had not been erected. Kenner, accordingly, was forced to use temporary storage facilities which were unfit for long-term storage.
Contractor II arrived at the Kenner farm in October or November, 1977, and began erecting the new buildings. One of the two buildings was partially completed when the work was interrupted by a heavy snowstorm. Contractor II left the Kenner farm to complete another project. He did not return.
Out of the state during the pouring of the slabs and the ensuing events, Kenner returned to North Dakota in mid-November, 1977, to find only one of the two buildings partially completed. Shortly thereafter, Robertson telephoned Kenner to discuss the completion of the buildings. Following the telephone conversation, Robertson sent Contractor III to the Kenner farm to dismantle the partially completed building. The evidence is in dispute as to who wanted the construction halted. The building materials were stored on the Kenner farm for the duration of the winter. Some of the materials were stored in an existing building and the remainder was left outside.
Because the 1977 sunflower crop had to be stored in existing temporary facilities unfit for long-term storage,[2] Kenner was forced to market his crop in an unfavorable winter market. It had previously been the *197 practice of Kenner to store some of his crop through the winter in order to take advantage of higher commodity prices in the spring. Kenner marketed 500,000 pounds of sunflowers in a depressed winter market.[3]
In May of 1978, Robertson hired Contractor IV to complete the construction of the new buildings. During this construction, Kenner noticed considerable amounts of white rust on the construction material and so informed Robertson by telephone. Kenner also informed Robertson that he would not accept the buildings in their defective condition. Robertson employees visited the Kenner farm to inspect the buildings but took no corrective action. Payment of the unpaid balance on the contract was demanded. Kenner refused to accept the buildings and refused to make the requested payment. There were no further contacts between the two parties until the commencement of this lawsuit on December 8, 1978.
Robertson claims to be entitled to the unpaid balance of the contract purchase price, compensation for dismantling the 1977 partial construction, and other additional erection costs for the work completed in May, 1978. Kenner denys owing anything to Robertson because of the latter's breach of contract. Kenner claims that Robertson's delay in erecting the buildings, resulting in disruption of the marketing of the 1977 sunflower crop, and the furnishing of defective materials resulting in exorbitant future maintenance costs, amounts to a substantial breach of contract. Kenner also counterclaimed for loss of profits because of the early sale of the 1977 sunflower crop.
The suit was tried to the court without a jury. The court found that Robertson had not substantially performed the contract and ordered rescission thereof. Although rescission had not been requested by either party, the court based its decision on that part of Rule 54(c), NDRCivP, which provides "every final judgment shall grant the relief to which the party in whose favor it is rendered is entitled, even if the party has not demanded such relief in his pleading." The court awarded Kenner damages of $12,500 as compensation for losses suffered in the marketing of his sunflower crop during unfavorable conditions in early 1978. This appeal by Robertson followed.

I. RECISSION
The right to rescind a contract is governed by statute.[4] A party is entitled to rescind only if he uses reasonable diligence to rescind promptly and to restore to the other party everything of value which was received under the contract.[5] This court has held that compliance with these rules is a condition precedent to the maintenance of *198 an action to rescind. Volk v. Volk, 121 N.W.2d 701, 706 (N.D.1963). The rule pertaining to prompt rescission, however, does not operate where legal excuse or justification for delay is shown. Lanz v. Naddy, 82 N.W.2d 809 (N.D.1957).
Robertson contends that Kenner failed to comply with the statutory requirement of prompt rescission. The determination of prompt rescission does not depend alone upon the lapse of time, but also upon the circumstances of each particular case. Lanz v. Naddy, supra. The contractual relationship between Kenner and Robertson extended over a considerable period of time. The contracted-for buildings which could have been built in six days were completed almost one year after the execution of the contract. Upon noticing the white rust on the steel panels, Kenner telephoned Robertson informing the latter that he would not accept buildings in that condition. Kenner's refusal to accept such defective buildings was sufficiently prompt to satisfy the statutory requirements.[6] Whether or not notice of rescission is timely is a question of fact. Gimbel v. Kuntz, 286 N.W.2d 501 (N.D.1979). Under these circumstances, the court's findings on this issue are not clearly erroneous. Rule 52(a), NDRCivP.
An additional statutory requirement is that the party seeking to rescind must offer to restore everything of value which he has received under the contract. The defective buildings were the only things of value Kenner received under his contract. Kenner's refusal to complete payment on the contract and his refusal to accept the buildings in such a defective condition constituted a sufficient offer to restore everything of value which he had received under the contract. See Schaff v. Kennelly, 61 N.W.2d 538 (N.D.1953).
Because the remedy of rescission is not held in high esteem by the courts, there must be a substantial breach of contract before there can be a basis for rescission in equity. See Schaff v. Kennelly, supra. Thus, if a builder has substantially performed the contract, then ordinarily the remedy of rescission should not be granted.
The contractor has substantially performed if the owner obtains, on the whole, what is bargained for in the contract. The question of substantial performance in this case is thus determined by the effect of white rust on the new buildings.
The trial court prepared an extensive 20-page memorandum opinion in lieu of findings of fact and conclusions of law. Insofar as findings are included therein and are supported by substantial evidence, they are not clearly erroneous. The court found that Kenner's purpose in acquiring a galvanized steel building was its freedom from maintenance over an extended period. The court further found that the white rust destroyed the maintenance-free characteristic, and therefrom appropriately concluded that there was not substantial performance. Robertson has pointed out no specific finding that we should consider to be clearly erroneous. When only a general attack is made against a decision by a trial court, this court can only give a general review. See Sorenson v. Olson, 235 N.W.2d 892 (N.D. 1975), Syllabus 1.
This court has held that where defects pervade the whole building, there can be no recovery on the basis of substantial performance. Braseth v. State Bank of Edinburg, 12 N.D. 486, 98 N.W. 79 (1904). The question of substantial performance is one of fact for the trier of fact. Dittmer v. Nokleberg, 219 N.W.2d 201, 207 (N.D.1974).
Robertson further contends that rescission was improperly granted because the parties could not be restored to the status quo before the contract. Under the particular facts of this case, this argument is without merit. These buildings are not permanently affixed to the land and thus may be removed by Robertson. The fact that the costs of hauling the buildings on and off the property, as well as the costs of erection, are substantial and are borne by Robertson, does not deprive Kenner of the right *199 to rescission. The buildings became corroded with white rust as a direct result of Robertson's, or its agents', negligent storage of the materials. Care must be exercised in storing galvanized steel panels. Care is desirable indoors and is absolutely necessary when the panels are stored outdoors. In stacking the panels, wood dividers must be used to insure proper drainage and to prevent the panels from touching one another. Failure to use the wood dividers allows water to become trapped between the panels, resulting in the formation of white rust. The incidental costs of effectuating rescission of this contract are thus properly borne by Robertson.
Robertson specifically contends that there was not competent evidence to prove lack of substantial performance in that Kenner's expert witness, Stanley Saugstead, testified to matters beyond the scope of his expertise and knowledge. Saugstead, a professional farm appraiser, testified as to the value of the buildings in their defective condition. This testimony was correctly ruled inadmissible by the trial court in light of Karlinski v. P. R. & H. Lumber & Construction Co., 68 N.D. 522, 281 N.W. 898 (1938). Saugstead, however, further testified as to the extent of the white rust problem. Robertson contends that this testimony should have been inadmissible to prove lack of substantial performance. Such a contention is without merit. In the trial of a nonjury case, only when all the evidence in support of a finding is incompetent do we reverse on that ground. See Schuh v. Allery, 210 N.W.2d 96, 100 (N.D.1973), and the many cases which have followed.
Kenner did not have the burden of proving lack of substantial performance; but rather, it was Robertson who properly had the burden of proving substantial performance of this contract. See Marchand v. Perrin, 19 N.D. 794, 124 N.W. 1112 (N.D. 1910). Whether or not a contract has been substantially performed is a question of fact. Dittmer v. Nokleberg, supra. The trial court's finding that Robertson had failed to substantially perform the contract was not clearly erroneous. Rule 52(a), NDRCivP.

II. LOSS OF PROFITS
The trial court awarded Kenner $12,500 in consequential damages for lost profits on the sunflower sale. Robertson contends that rescission or damages are mutually exclusive remedies. See McLean v. News Pub. Co., 21 N.D. 89, 129 N.W. 93 (1910). However, rescission and damages are not mutually exclusive remedies under the Uniform Commercial Code. Welken v. Conley, 252 N.W.2d 311 (N.D.1977); § 41-02-99, NDCC. The question then remains whether or not the rights and obligations of this sales contract are governed by the UCC. The UCC is only applicable if this contract is a contract for the sale of goods. Section 41-02-02, NDCC. Here, the sales contract involves both goods and services. The rule for determining the applicability of the UCC to a non-divisible contract of goods and services was enunciated in Air Heaters, Inc. v. Johnson Elec., Inc., 258 N.W.2d 649 (N.D.1977). In contracts involving both a sale of goods and a rendition of services, if the predominant factor, the thrust, the purpose reasonably stated is the sale of the goods with the rendition of services incidentally involved, the contract is for a sale of goods and the Uniform Commercial Code is applicable; if the predominant factor, the thrust, the purpose reasonably stated is the rendition of services with the sale of goods incidentally involved, the contract is one for services and the Uniform Commercial Code is not applicable.
Here, the agreement was a non-divisible mixed contract, calling for both the sale of goods and the rendition of services. However, in applying the Air Heaters' test, it clearly appears that the main purpose of the contract was the sale of grain storage facilities.[7] The scope of the coverage of *200 "goods" should be broadly construed so as to carry out the underlying purpose of the UCC to achieve uniformity in commercial transactions. See Pittsburgh-Des Moines Steel Co. v. Brookhaven Manor Water Co., 532 F.2d 572 (7th Cir. 1976). Generally, in the UCC, "goods" has a very extensive meaning and embraces every species of property. Duffee v. Judson, 251 Pa.Super. 406, 380 A.2d 843 (1977). Although the storage facilities are not "goods" to be taken from the shelf, they are, in the words of the UCC, a movable thing specially manufactured. See § 41-02-05, NDCC. The fact that the storage facilities were in existence only as disassembled materials at the time of the execution of the contract, did not change their status as goods. These buildings, even upon full assembly, are capable of being detached from their foundations and are thus "movable." The expansion of the scope of "goods" to include grain storage facilities is not without precedent. Included within the definition of goods are "hog houses," Thompson Farms, Inc. v. Corno Feed Products, Div. of Nat. Octs. Co., 173 Ind.App. 682, 366 N.E.2d 3 (1977); "calf-confinement buildings," Shinrone, Inc. v. Tasco, Inc., 283 N.W.2d 280 (Iowa 1979); a one-million gallon water tank, Pittsburgh-Des Moines Steel Co. v. Brookhaven Manor Water Co., 532 F.2d 572 (7th Cir. 1976); sewage processing plant, Omaha Pollution Control Corp. v. Carver-Greenfield, 413 F.Supp. 1069 (D.Neb.1976); and mobile homes, Jones v. Abriani, 169 Ind.App. 556, 350 N.E.2d 635 (1976).
Here, Kenner purchased a product and was charged for the finished unit. The disassembled materials were movable at the time of incorporation into the contract, and Kenner was to pay a single price to Robertson for the completed package. The sale of the grain storage facilities was thus a sale of goods within the purview of the UCC and remedies of rescission and damages are therefore not mutually exclusive. Welken v. Conley, supra.

III. INTEREST
Section 32-03-04, NDCC,[8] allows a party the right to recover interest if the damages are certain or capable of being made certain by calculation. The amount of damages does not require proof to a degree of mathematical precision. Johnson v. Monsanto Co., 303 N.W.2d 86 (N.D.1981). Uncontradicted evidence supports the finding that Kenner sustained lost profits on more than 500,000 pounds of sunflowers at two to three cents ($.02 to $.03) per pound. Accordingly, the damages were capable of being made certain to satisfy the requirements of § 32-03-04, NDCC.
The judgment is affirmed.
ERICKSTAD, C. J., and PAULSON, SAND and VANDE WALLE, JJ., concur.
NOTES
[1]  This contract was a direct result of an earlier agreement between the two parties. In 1975, Kenner bought two galvanized steel buildings from Robertson for grain storage. The buildings were inadequate for the intended purpose and their defective condition was an essential consideration in setting the price for the new buildings.
[2]  The concrete slabs for the 1975 buildings had been improperly poured and water seeped into the building during the spring thaw. Robertson admitted full responsibility for defects in the 1975 buildings.
[3]  Additional local storage for sunflowers was unavailable. The local elevators were not equipped to store sunflowers at this time.
[4]  "9-09-02. RescissionWhen permitted.A party to a contract may rescind the same in the following cases only:

"1. If the consent of the party rescinding or of any party jointly contracting with him was given by mistake or obtained through duress, menace, fraud, or undue influence exercised by or with the connivance of the party as to whom he rescinds or of any other party to the contract jointly interested with such party;
"2. If through the fault of the party as to whom he rescinds the consideration for his obligation fails in whole or in part;
"3. If such consideration becomes entirely void from any cause;
"4. If such consideration before it is rendered to him fails in a material respect from any cause; or
"5. By consent of all of the other parties."
[5]  "9-09-04. Rules governing rescission.Rescission, when not effected by consent or pursuant to sections 9-08-08 and 9-08-09, can be accomplished only by the use, on the part of the party rescinding, of reasonable diligence to comply with the following rules:

"1. He must rescind promptly upon discovering the facts which entitle him to rescind, if he is free from duress, menace, undue influence, or disability and is aware of his right to rescind; and
"2. He must restore to the other party everything of value which he has received from him under the contract or must offer to restore the same upon condition that such party shall do likewise, unless the latter is unable or positively refuses to do so."
[6]  See notes 4 and 5.
[7]  The contractual language is supportive of this position. It requires Robertson to "provide, deliver, and erect" two new buildings.
[8]  "32-03-04. Interest on damages.Every person who is entitled to recover damages certain or capable of being made certain by calculation, the right to recover which is vested in him upon a particular day, also is entitled to recover interest thereon from that day, except for such time as the debtor is prevented by law or by the act of the creditor from paying the debt."
