
158 S.W.3d 920 (2005)
EIMAN BROTHERS ROOFING SYSTEMS, INC., Respondent,
v.
CNS INTERNATIONAL MINISTRIES, INC., Appellant.
No. WD 63343.
Missouri Court of Appeals, Western District.
April 5, 2005.
*921 Timothy Belz, St. Louis, MO, for Appellant.
Jackie D. Hendrix, St. Joseph, MO, for Respondent.
Before: LOWENSTEIN, P.J., BRECKENRIDGE and SMART, JJ.
HAROLD L. LOWENSTEIN, Judge.
This appeal arises from a judgment ordering CNS International Ministries, Inc. to pay the respondent, a contractor, the unpaid balance of $46,263.69 plus attorney's fees in a breach of contract action. The judgment is affirmed.

FACTS
In February 2000, CNS International Ministries, Inc. (CNS) signed a contract *922 with Eiman Brothers Roofing Systems (Eiman). Under the contract, Eiman would provide CNS with a clay tile roof for one of their properties. Based on the size of the roof provided in CNS' plans, the total amount of the contract was $52,731.00. In May 2000, Eiman realized that the plan provided by CNS underestimated the roof's actual size, requiring an additional 20 to 25 squares. Eiman, demanding a second contract, recalculated and re-bid the project. In May 2000, CNS signed a contract modification proposal sent by Eiman, adding $23,000 in costs. With the work substantially complete, CNS noted problems in Eiman's performance and its alleged failure to deliver on assurances to correct those problems. Consequently, CNS ordered Eiman to stop working on the roof. Eiman then brought this breach of contract action. At the time of breach, CNS had paid a total of $29,000 on the contract. After a bench trial, the court found in favor of Eiman finding that the May 2000 proposal was a contract and awarded damages respectively.

ANALYSIS
CNS argues four points on appeal: (1) that the May 2000 contract is invalid because it was not properly executed; (2) the May 2000 contact lacked proper consideration; (3) the attorney fee provision of the May 2000 contract is unenforceable because it is incomplete; and (4) the trial court damage award is improper.
In a court-tried case, the judgment of the trial court will be affirmed unless there is no substantial evidence to support it, it is against the weight of the evidence, it erroneously declares the law, or it erroneously applies the law. Murphy v. Carron, 536 S.W.2d 30, 32 (Mo. banc 1976). This court reviews the evidence, along with all reasonable inferences, in the light most favorable to the trial court's judgment and disregards all contrary evidence and inferences. Wildflower Cmty. Ass'n, Inc., v. Rinderknecht, 25 S.W.3d 530, 534 (Mo.App.2000).
First, CNS contends that the trial court erred in basing its judgment on the May 2000 contract, because CNS did not sign below the "Acceptance of Proposal" portion. It argues that because this portion purports to bind only those described as the "undersigned," CNS is not bound by the proposal. However, the placement of a signature is not dispositive of the signer's intent. "While the usual place of signature is at the close of a contract, yet if it appears in the writing at any other place, and was placed there as a signature, it is sufficient." McMickle v. Wabash Ry. Co., 209 S.W. 611, 612 (Mo.App.1919). Accordingly, CNS signature was sufficient to form a contract.
CNS also claims that the contract was unenforceable for lack of consideration, in that Eiman had a pre-existing duty to CNS. Specifically, CNS argues that the May 2000 proposal called for Eiman to perform in exactly the same manner as the original contract. Despite CNS' contentions to the contrary, the obligations were not identical. Modification of a contract is enforceable only if based upon mutual assent and supported by consideration. MECO Sys., Inc. v. Dancing Bear Entm't, Inc., 42 S.W.3d 794, 803 (Mo.App.2001). A promise to carry out an already existing contractual duty does not constitute consideration. Zipper v. Health Midwest, 978 S.W.2d 398, 416 (Mo.App.1998). Here, the original contract required Eiman to roof CNS' property according to the first set of plans, which called for a smaller roof. Conversely, under the May 2000 proposal Eiman was to provide CNS with additional labor and materials for the larger roof in return for CNS' payment of an extra $23,000. These new obligations are *923 sufficient consideration for the May 2000 modification.
Next, CNS argues that the trial court erred in granting attorney fees under the May 2000 contract because the provision was unexecuted and incomplete, thus, unenforceable. This contention is without merit for two reasons. First, as discussed above, the signature on the contract was sufficient to bind CNS. Second, although the attorney fee provision was incomplete, there was sufficient evidence that the parties intended the provision to be included. The primary rule of contract interpretation is to ascertain the parties' intention and give effect to that intention. Langdon v. United Rests., Inc., 105 S.W.3d 882, 887 (Mo.App.2003). Where a contract is ambiguous the court can consider extrinsic evidence in determining the parties' intent. Id. An ambiguity arises when there is uncertainty in the meaning of the words used in the contract. Lacey v. State Bd. of Registration for the Healing Arts, 131 S.W.3d 831, 839 (Mo.App.2004). Whether a contract is ambiguous is a question of law. Id. at 838. Because the attorney provision of the May 2000 contract is incomplete, its effect lacks certainty. Therefore, in ascertaining the intent of the parties, the trial court could properly consider the original agreement, which included the same provision except that the missing language from the May 2000 contract was not omitted.[1]
Finally, CNS contends that the trial court erred in applying the substantial performance doctrine in that it did not apply the proper damage formula. "The proper measure of damages in a case where an owner breaches a construction contract by preventing the contractor from performing the work is the contract price less the amount it would have cost the contractor to perform the contract." Forney v. Mo. Bridge & Concrete, Inc., 112 S.W.3d 471, 474 (Mo.App.2003). According to uncontradicted testimony, Eiman's work was 99% complete at the time CNS told them to stop working. As such, the trial court's award of $46,263.69, precisely 99% of the unpaid portion of the contract, was an appropriate measure of damages. The trial court was entitled to award a cost of repair where defects are shown and it is reasonable. Forsythe v. Starnes, 554 S.W.2d 100, 109 (Mo.App.1977). However, in determining if the roof was defective, the trial court noted that CNS' expert had little or no experience in the installation of clay tile roofs. Furthermore, the court determined that the "defects" could be cured at no additional cost. Thus, the trial court's decision not to award CNS damages for repair is not erroneous.
The judgment is affirmed.
All concur.
NOTES
[1]  The May 2000 contract contained a provision stating, "The undersigned/buyer agrees to pay all collection costs, finance charges, and reasonable attorney fees incurred by [Eiman] in collection of the" but contains no other language, making it an incomplete clause. However, the original agreement contains the exact same provision but includes the phrase "above contract amount" completing the clause.
