Contract – discharge by breach and incomplete performance