diff --git a/03_demo.txt b/03_demo.txt
deleted file mode 100644
index c19703a5b6c8ec9f61dea999561ca0de79e9e9cf..0000000000000000000000000000000000000000
--- a/03_demo.txt
+++ /dev/null
@@ -1,103 +0,0 @@
-// Notes used by pete in class (not originally intended to be public,
-// but I was asked.....), some of these are examples of
-// correct usage, and some illustrate issues to be fixed in class. Some
-// lines are comments, some are notes to myself. They are not intended
-// to be correct "as is". Use them to explore on your own.
-
-```go
-func changeB(a:String, b: inout String) {
-   b = "\(a)\(b)"
-}
-var s="this"
-changeB(a:"changing ", b:&s)
-print(s)
-
-
-
-//=====================================================================
-
-func outer() -> (Int) -> Int {
-      var incr = 0
-      func inner(_ a:Int) -> Int {
-         incr += 1
-         return a+incr
-      }
-      return inner
-   }
-let x = outer()
-x(33)
-
-//=====================================================================
-
-Array::sorted(by: (T,T)->Bool)
-
-   let nums = [7,5,14,12,16]
-
-   // Sort with inferred types
-   let snums = nums.sorted(by:{a,b in a>b})
-
-   // Sort with positional parameters
-   let snums2 = nums.sorted(by:{$0>$1})
-
-   // Sort with function name
-   let snums3 = nums.sorted(by:>)
-
-   // Sort with a trailing closure
-   let snums4 = nums.sorted() {$0>$1}
-
-   // Sort with parentheses omitted
-   let snums5 = nums.sorted {$0>$1}
-
-//=====================================================================
-
-
-enum Earthsea: CaseIterable {
-   case AWizardOfEarthsea
-   case TheTombsOfAtuan
-   case TheFarthestShore
-   case Tehanu
-}
-
-for book in Earthsea.allCases {
-   print(book)
-}
-
-//=====================================================================
-
-struct Point {
-  var x: Int = 0
-  var y: Int = 0
-}
-let p = Point(x:3, y: 4)
-let p2 = Point(x:4, y: 5)
-
-enum Shape {
-   case circle(center:Point, radius:Double)
-   case rect(lowerLeft:Point, upperRight:Point)
-}
-
-let s = Shape.circle(center:p, radius:1.5)
-
-switch s {
-   case .circle(let c, let r):
-   	print("It's a circle \(c) \(r)")
-	
-   case let .rect(ll, ur):
-   	print("Just a rect \(ll) \(ur)")
-	
-   default:
-	print("default")
-}
-
-let sr = Shape.rect(lowerLeft: p, upperRight: p2)
-switch sr {
-   case .circle(let c, let r):
-   	print("It's a circle \(c) \(r)")
-	
-   case let .rect(ll, ur):
-   	print("Just a rect \(ll) \(ur)")
-	
-   default:
-	print("default")
-}
-```
diff --git a/demos/03_demo.md b/demos/03_demo.md
deleted file mode 100644
index 0bf7da6ad8c7a77475d63ec388f8b86f43c855b2..0000000000000000000000000000000000000000
--- a/demos/03_demo.md
+++ /dev/null
@@ -1,98 +0,0 @@
-```swift
-func changeB(a:String, b: inout String) {
-   b = "\(a)\(b)"
-}
-var s="this"
-changeB(a:"changing ", b:&s)
-print(s)
-
-
-
-//=====================================================================
-
-func outer() -> (Int) -> Int {
-      var incr = 0
-      func inner(_ a:Int) -> Int {
-         incr += 1
-         return a+incr
-      }
-      return inner
-   }
-let x = outer()
-x(33)
-
-//=====================================================================
-
-Array::sorted(by: (T,T)->Bool)
-
-   let nums = [7,5,14,12,16]
-
-   // Sort with inferred types
-   let snums = nums.sorted(by:{a,b in a>b})
-
-   // Sort with positional parameters
-   let snums2 = nums.sorted(by:{$0>$1})
-
-   // Sort with function name
-   let snums3 = nums.sorted(by:>)
-
-   // Sort with a trailing closure
-   let snums4 = nums.sorted() {$0>$1}
-
-   // Sort with parentheses omitted
-   let snums5 = nums.sorted {$0>$1}
-
-//=====================================================================
-
-
-enum Earthsea: CaseIterable {
-   case AWizardOfEarthsea
-   case TheTombsOfAtuan
-   case TheFarthestShore
-   case Tehanu
-}
-
-for book in Earthsea.allCases {
-   print(book)
-}
-
-//=====================================================================
-
-struct Point {
-  var x: Int = 0
-  var y: Int = 0
-}
-let p = Point(x:3, y: 4)
-let p2 = Point(x:4, y: 5)
-
-enum Shape {
-   case circle(center:Point, radius:Double)
-   case rect(lowerLeft:Point, upperRight:Point)
-}
-
-let s = Shape.circle(center:p, radius:1.5)
-
-switch s {
-   case .circle(let c, let r):
-   	print("It's a circle \(c) \(r)")
-	
-   case let .rect(ll, ur):
-   	print("Just a rect \(ll) \(ur)")
-	
-   default:
-	print("default")
-}
-
-let sr = Shape.rect(lowerLeft: p, upperRight: p2)
-switch sr {
-   case .circle(let c, let r):
-   	print("It's a circle \(c) \(r)")
-	
-   case let .rect(ll, ur):
-   	print("Just a rect \(ll) \(ur)")
-	
-   default:
-	print("default")
-}
-```
-
diff --git a/exercises-9-9.md b/exercises-9-9.md
deleted file mode 100644
index b897efe5895ff86ea29ac3571d4f3c24b7ee6ce4..0000000000000000000000000000000000000000
--- a/exercises-9-9.md
+++ /dev/null
@@ -1,185 +0,0 @@
-// Notes used by pete in class (not originally intended to be public,
-// but I was asked.....), some of these are examples of
-// correct usage, and some illustrate issues to be fixed in class. Some
-// lines are comments, some are notes to myself. They are not intended
-// to be correct "as is". Use them to explore on your own.
-
-```swift
-struct Stack<Element> {
-      var items = [Element]()
-      mutating func push(_ item: Element) {
-         items.append(item)
-      }
-      mutating func pop() -> Element {
-         return items.removeLast()
-      }
-}
-
-
-var t = Stack<Int>()
-
-print(t)
-t.push(3)
-t.push(4)
-print(t.pop())
-
-var s = Stack<String>()
-
-s.push("nice")
-print(s.pop())
-
-//=====================================================================
-
-
-extension Stack {
-    var top: T? {
-        return items.isEmpty ? nil : items[0]
-    }
-}
-
-if let x = t.top {
-    print("there is another int")
-}
-
-if let y = s.top {
-    print("there is another string")
-}
-
-//=====================================================================
-
-enum MyError: Error {
-    case bad1
-    case bad2
-}
-
-func blah() throws {
-    defer { print("I've got a deferment") }
-    defer { print("Second deferment") }
-
-    throw MyError.bad1
-    
-    print("regular blah")
-}
-
-do {
-    try blah()
-} catch let e where e is MyError {
-    print("my bad \(e)")
-}
-
-
-
-
-//=====================================================================
-
-class Person { // references: 0
-   let name:String
-   init(name: String) { self.name = name }
-   var apartment: Apartment?
-   deinit { print("\(name) is being deinitialized") }
-}
-
-class Apartment { // references: 0
-   let unit: String
-   init(unit: String) { self.unit = unit }
-   var tenant: Person?
-   deinit { print("Apartment \(unit) is being deinitialized") }
-}
-
-var john:Person? = Person(name: "John Doe")
-var unit4A:Apartment? = Apartment(unit: "4A")
-john!.apartment = unit4A
-unit4A!.tenant = john
-
-john = nil
-unit4A = nil
-
-    
-// make either ref weak and they go away
-
-// make .tenant unowned (.apartment strong)
-
-john = nil
-print(unit4A!.tenant)  // crash
-
-//=====================================================================
-
-
-class Country {
-   let name: String
-   var capitalCity: City? = nil
-   init(nameIn: String, capitalName: String) {
-      name = nameIn
-      capitalCity = City(nameIn: capitalName, countryIn: self)
-   }
-    deinit {
-        print("\(name) deiniting")
-    }
-}
-
-class City {
-   let name: String
-   unowned let country: Country
-   init(nameIn: String, countryIn: Country) {
-      name = nameIn
-      country = countryIn
-    }
-    deinit {
-        print("\(name) deiniting")
-    }
-}
-
-var country :Country? = Country(nameIn: "Bangladesh", capitalName: "Dhaka")
-
-
-// need to make capitalCity OPTIONAL so init can complete
-
-// still have loop, so make country UNOWNED
-
-//=====================================================================
-
-class Person {
-   var firstName: String?
-   var lastName: String?
-   var fullName: ()->String = {
-      return ("\(self.firstName!) \(self.lastName!)")
-   }
-   init(f: String, l: String) {
-       firstName = f
-       lastName = l
-   }
-    deinit {
-        print("deiniting")
-    }
-}
-
-var x:Person? = Person(f: "pete", l: "keleher")
-
-print(x!.fullName())
-
-x = nil
-
-print("done")
-
-// Add 'lazy' to def of fullname, allow not violate safety check.
-// add " [unowned self] in" (a "capture list") to fullName closure to avoid strong reference loop:
-
-class Person {
-   var firstName: String?
-   var lastName: String?
-   lazy var fullName: ()->String = {
-       [unowned self]
-       return ("\(self.firstName!) \(self.lastName!)")
-   }
-   init(f: String, l: String) {
-       firstName = f
-       lastName = l
-   }
-   deinit {
-       print("deiniting")
-   }
-}
-
-//=====================================================================
-
-```