diff --git a/Documentation/Bibliography.md b/Documentation/Bibliography.md
index 36fdc4d..3aeb8a3 100644
--- a/Documentation/Bibliography.md
+++ b/Documentation/Bibliography.md
@@ -1,3 +1,9 @@
+### Functional Programming
+
+https://youtu.be/T5oB8PZQNvY
+
+https://leanpub.com/sofp
+
 
 ### Theory of Streams
 * [Stream Fusion: From Lists to Streams to Nothing At All](https://github.com/bitemyapp/papers/blob/master/Stream%20Fusion:%20From%20Lists%20to%20Streams%20to%20Nothing%20At%20All.pdf)
@@ -10,6 +16,18 @@
 
 * [Functional Stream Libraries and Fusion: What's Next?](https://okmij.org/ftp/meta-programming/shonan-streams.pdf)
 
+https://github.com/bitemyapp/papers/blob/master/A%20Poor%20Man's%20Concurrency%20Monad.pdf
+https://github.com/bitemyapp/papers/blob/master/Cheap%20(But%20Functional)%20Threads.pdf
+https://github.com/bitemyapp/papers/blob/master/Combining%20Events%20and%20Threads%20for%20Scalable%20Network%20Services:%20Implementation%20and%20Evaluation%20of%20Monadic%2C%20Application-Level%20Concurrency%20Primitives.pdf
+https://github.com/bitemyapp/papers/blob/master/Compiling%20with%20Continuations%2C%20Continued.pdf
+https://github.com/bitemyapp/papers/blob/master/Functional%20Reactive%20Programming%20from%20First%20Principles.pdf
+https://github.com/bitemyapp/papers/blob/master/Functional%20Reactive%20Programming%2C%20Continued.pdf
+https://github.com/bitemyapp/papers/blob/master/Higher-Order%20Functional%20Reactive%20Programming%20without%20Spacetime%20Leaks.pdf
+https://github.com/bitemyapp/papers/blob/master/Lazy%20Functional%20State%20Threads.pdf
+https://github.com/bitemyapp/papers/blob/master/Push-pull%20functional%20reactive%20programming.pdf
+https://github.com/bitemyapp/papers/blob/master/Stream%20Fusion%20on%20Haskell%20Unicode%20Strings.pdf
+
+
 ### Theory of State
 
 
diff --git a/Playgrounds/04 - Publishers.playground/Pages/01-Just.xcplaygroundpage/Contents.swift b/Playgrounds/03 - Even More Structured Concurrency.playground/Pages/01 - Cancellable.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/Pages/01-Just.xcplaygroundpage/Contents.swift
rename to Playgrounds/03 - Even More Structured Concurrency.playground/Pages/01 - Cancellable.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/04 - Publishers.playground/Contents.swift b/Playgrounds/03 - Even More Structured Concurrency.playground/Pages/02 - StateTask.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/Contents.swift
rename to Playgrounds/03 - Even More Structured Concurrency.playground/Pages/02 - StateTask.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/04 - Publishers.playground/timeline.xctimeline b/Playgrounds/03 - Even More Structured Concurrency.playground/Pages/02 - StateTask.xcplaygroundpage/timeline.xctimeline
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/timeline.xctimeline
rename to Playgrounds/03 - Even More Structured Concurrency.playground/Pages/02 - StateTask.xcplaygroundpage/timeline.xctimeline
diff --git a/Playgrounds/05 - Operators.playground/contents.xcplayground b/Playgrounds/03 - Even More Structured Concurrency.playground/contents.xcplayground
similarity index 100%
rename from Playgrounds/05 - Operators.playground/contents.xcplayground
rename to Playgrounds/03 - Even More Structured Concurrency.playground/contents.xcplayground
diff --git a/Playgrounds/03 - Even More Structured Concurrency.playground/playground.xcworkspace/contents.xcworkspacedata b/Playgrounds/03 - Even More Structured Concurrency.playground/playground.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..ca3329e
--- /dev/null
+++ b/Playgrounds/03 - Even More Structured Concurrency.playground/playground.xcworkspace/contents.xcworkspacedata	
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:">
+   </FileRef>
+</Workspace>
diff --git a/Playgrounds/03 - FreeCombine.playground/Pages/00a-Introduction (Examples).xcplaygroundpage/Contents.swift b/Playgrounds/04 - FreeCombine.playground/Pages/00a-Introduction (Examples).xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/03 - FreeCombine.playground/Pages/00a-Introduction (Examples).xcplaygroundpage/Contents.swift
rename to Playgrounds/04 - FreeCombine.playground/Pages/00a-Introduction (Examples).xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/03 - FreeCombine.playground/Pages/00b-Introduction (Requirements).xcplaygroundpage/Contents.swift b/Playgrounds/04 - FreeCombine.playground/Pages/00b-Introduction (Requirements).xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/03 - FreeCombine.playground/Pages/00b-Introduction (Requirements).xcplaygroundpage/Contents.swift
rename to Playgrounds/04 - FreeCombine.playground/Pages/00b-Introduction (Requirements).xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/03 - FreeCombine.playground/Pages/00c-Introduction (Supply and Demand).xcplaygroundpage/Contents.swift b/Playgrounds/04 - FreeCombine.playground/Pages/00c-Introduction (Supply and Demand).xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/03 - FreeCombine.playground/Pages/00c-Introduction (Supply and Demand).xcplaygroundpage/Contents.swift
rename to Playgrounds/04 - FreeCombine.playground/Pages/00c-Introduction (Supply and Demand).xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/03 - FreeCombine.playground/Pages/01a-Deriving FreeCombine (Base).xcplaygroundpage/Contents.swift b/Playgrounds/04 - FreeCombine.playground/Pages/01a-Deriving FreeCombine (Base).xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/03 - FreeCombine.playground/Pages/01a-Deriving FreeCombine (Base).xcplaygroundpage/Contents.swift
rename to Playgrounds/04 - FreeCombine.playground/Pages/01a-Deriving FreeCombine (Base).xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/03 - FreeCombine.playground/Pages/01b-Deriving FreeCombine (enum Demand).xcplaygroundpage/Contents.swift b/Playgrounds/04 - FreeCombine.playground/Pages/01b-Deriving FreeCombine (enum Demand).xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/03 - FreeCombine.playground/Pages/01b-Deriving FreeCombine (enum Demand).xcplaygroundpage/Contents.swift
rename to Playgrounds/04 - FreeCombine.playground/Pages/01b-Deriving FreeCombine (enum Demand).xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/03 - FreeCombine.playground/Pages/01c-Deriving FreeCombine (async eliminates Subscription).xcplaygroundpage/Contents.swift b/Playgrounds/04 - FreeCombine.playground/Pages/01c-Deriving FreeCombine (async eliminates Subscription).xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/03 - FreeCombine.playground/Pages/01c-Deriving FreeCombine (async eliminates Subscription).xcplaygroundpage/Contents.swift
rename to Playgrounds/04 - FreeCombine.playground/Pages/01c-Deriving FreeCombine (async eliminates Subscription).xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/03 - FreeCombine.playground/Pages/01d-Deriving FreeCombine (simplify Subscriber to one func).xcplaygroundpage/Contents.swift b/Playgrounds/04 - FreeCombine.playground/Pages/01d-Deriving FreeCombine (simplify Subscriber to one func).xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/03 - FreeCombine.playground/Pages/01d-Deriving FreeCombine (simplify Subscriber to one func).xcplaygroundpage/Contents.swift
rename to Playgrounds/04 - FreeCombine.playground/Pages/01d-Deriving FreeCombine (simplify Subscriber to one func).xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/03 - FreeCombine.playground/Pages/01e-Deriving FreeCombine (eliminate Subscriber into Publisher).xcplaygroundpage/Contents.swift b/Playgrounds/04 - FreeCombine.playground/Pages/01e-Deriving FreeCombine (eliminate Subscriber into Publisher).xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/03 - FreeCombine.playground/Pages/01e-Deriving FreeCombine (eliminate Subscriber into Publisher).xcplaygroundpage/Contents.swift
rename to Playgrounds/04 - FreeCombine.playground/Pages/01e-Deriving FreeCombine (eliminate Subscriber into Publisher).xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/03 - FreeCombine.playground/Pages/01f-Deriving FreeCombine (add Task as Cancellation).xcplaygroundpage/Contents.swift b/Playgrounds/04 - FreeCombine.playground/Pages/01f-Deriving FreeCombine (add Task as Cancellation).xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/03 - FreeCombine.playground/Pages/01f-Deriving FreeCombine (add Task as Cancellation).xcplaygroundpage/Contents.swift
rename to Playgrounds/04 - FreeCombine.playground/Pages/01f-Deriving FreeCombine (add Task as Cancellation).xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/03 - FreeCombine.playground/Pages/01g-Deriving FreeCombine (cleanup).xcplaygroundpage/Contents.swift b/Playgrounds/04 - FreeCombine.playground/Pages/01g-Deriving FreeCombine (cleanup).xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/03 - FreeCombine.playground/Pages/01g-Deriving FreeCombine (cleanup).xcplaygroundpage/Contents.swift
rename to Playgrounds/04 - FreeCombine.playground/Pages/01g-Deriving FreeCombine (cleanup).xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/03 - FreeCombine.playground/Pages/01h-Deriving FreeCombine (convert Publisher protocol to struct).xcplaygroundpage/Contents.swift b/Playgrounds/04 - FreeCombine.playground/Pages/01h-Deriving FreeCombine (convert Publisher protocol to struct).xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/03 - FreeCombine.playground/Pages/01h-Deriving FreeCombine (convert Publisher protocol to struct).xcplaygroundpage/Contents.swift
rename to Playgrounds/04 - FreeCombine.playground/Pages/01h-Deriving FreeCombine (convert Publisher protocol to struct).xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/03 - FreeCombine.playground/Resources/CombineReturnTypes.png b/Playgrounds/04 - FreeCombine.playground/Resources/CombineReturnTypes.png
similarity index 100%
rename from Playgrounds/03 - FreeCombine.playground/Resources/CombineReturnTypes.png
rename to Playgrounds/04 - FreeCombine.playground/Resources/CombineReturnTypes.png
diff --git a/Playgrounds/03 - FreeCombine.playground/contents.xcplayground b/Playgrounds/04 - FreeCombine.playground/contents.xcplayground
similarity index 100%
rename from Playgrounds/03 - FreeCombine.playground/contents.xcplayground
rename to Playgrounds/04 - FreeCombine.playground/contents.xcplayground
diff --git a/Playgrounds/03 - FreeCombine.playground/playground.xcworkspace/contents.xcworkspacedata b/Playgrounds/04 - FreeCombine.playground/playground.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from Playgrounds/03 - FreeCombine.playground/playground.xcworkspace/contents.xcworkspacedata
rename to Playgrounds/04 - FreeCombine.playground/playground.xcworkspace/contents.xcworkspacedata
diff --git a/Playgrounds/05 - Operators.playground/Contents.swift b/Playgrounds/05 - Publishers.playground/Contents.swift
similarity index 100%
rename from Playgrounds/05 - Operators.playground/Contents.swift
rename to Playgrounds/05 - Publishers.playground/Contents.swift
diff --git a/Playgrounds/04 - Publishers.playground/Pages/02-Empty.xcplaygroundpage/Contents.swift b/Playgrounds/05 - Publishers.playground/Pages/01-Just.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/Pages/02-Empty.xcplaygroundpage/Contents.swift
rename to Playgrounds/05 - Publishers.playground/Pages/01-Just.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/04 - Publishers.playground/Pages/03-Fail.xcplaygroundpage/Contents.swift b/Playgrounds/05 - Publishers.playground/Pages/02-Empty.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/Pages/03-Fail.xcplaygroundpage/Contents.swift
rename to Playgrounds/05 - Publishers.playground/Pages/02-Empty.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/04 - Publishers.playground/Pages/04-Unfolded.xcplaygroundpage/Contents.swift b/Playgrounds/05 - Publishers.playground/Pages/03-Fail.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/Pages/04-Unfolded.xcplaygroundpage/Contents.swift
rename to Playgrounds/05 - Publishers.playground/Pages/03-Fail.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/04 - Publishers.playground/Pages/05-Deferred.xcplaygroundpage/Contents.swift b/Playgrounds/05 - Publishers.playground/Pages/04-Unfolded.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/Pages/05-Deferred.xcplaygroundpage/Contents.swift
rename to Playgrounds/05 - Publishers.playground/Pages/04-Unfolded.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/04 - Publishers.playground/Pages/06-Concat.xcplaygroundpage/Contents.swift b/Playgrounds/05 - Publishers.playground/Pages/05-Deferred.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/Pages/06-Concat.xcplaygroundpage/Contents.swift
rename to Playgrounds/05 - Publishers.playground/Pages/05-Deferred.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/04 - Publishers.playground/Pages/09-CombineLatest.xcplaygroundpage/Contents.swift b/Playgrounds/05 - Publishers.playground/Pages/06-Concat.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/Pages/09-CombineLatest.xcplaygroundpage/Contents.swift
rename to Playgrounds/05 - Publishers.playground/Pages/06-Concat.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/04 - Publishers.playground/Pages/07-Zipped.xcplaygroundpage/Contents.swift b/Playgrounds/05 - Publishers.playground/Pages/07-Zipped.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/Pages/07-Zipped.xcplaygroundpage/Contents.swift
rename to Playgrounds/05 - Publishers.playground/Pages/07-Zipped.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/04 - Publishers.playground/Pages/08-Merged.xcplaygroundpage/Contents.swift b/Playgrounds/05 - Publishers.playground/Pages/08-Merged.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/Pages/08-Merged.xcplaygroundpage/Contents.swift
rename to Playgrounds/05 - Publishers.playground/Pages/08-Merged.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/04 - Publishers.playground/Pages/10-Heartbeat.xcplaygroundpage/Contents.swift b/Playgrounds/05 - Publishers.playground/Pages/09-CombineLatest.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/Pages/10-Heartbeat.xcplaygroundpage/Contents.swift
rename to Playgrounds/05 - Publishers.playground/Pages/09-CombineLatest.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/04 - Publishers.playground/Pages/11-FireAndForget.xcplaygroundpage/Contents.swift b/Playgrounds/05 - Publishers.playground/Pages/10-Heartbeat.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/Pages/11-FireAndForget.xcplaygroundpage/Contents.swift
rename to Playgrounds/05 - Publishers.playground/Pages/10-Heartbeat.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/05 - Operators.playground/Pages/01-Map.xcplaygroundpage/Contents.swift b/Playgrounds/05 - Publishers.playground/Pages/11-FireAndForget.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/05 - Operators.playground/Pages/01-Map.xcplaygroundpage/Contents.swift
rename to Playgrounds/05 - Publishers.playground/Pages/11-FireAndForget.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/04 - Publishers.playground/contents.xcplayground b/Playgrounds/05 - Publishers.playground/contents.xcplayground
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/contents.xcplayground
rename to Playgrounds/05 - Publishers.playground/contents.xcplayground
diff --git a/Playgrounds/04 - Publishers.playground/playground.xcworkspace/contents.xcworkspacedata b/Playgrounds/05 - Publishers.playground/playground.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from Playgrounds/04 - Publishers.playground/playground.xcworkspace/contents.xcworkspacedata
rename to Playgrounds/05 - Publishers.playground/playground.xcworkspace/contents.xcworkspacedata
diff --git a/Playgrounds/05 - Operators.playground/timeline.xctimeline b/Playgrounds/05 - Publishers.playground/timeline.xctimeline
similarity index 100%
rename from Playgrounds/05 - Operators.playground/timeline.xctimeline
rename to Playgrounds/05 - Publishers.playground/timeline.xctimeline
diff --git a/Playgrounds/06 - Operators.playground/Contents.swift b/Playgrounds/06 - Operators.playground/Contents.swift
new file mode 100644
index 0000000..9d86688
--- /dev/null
+++ b/Playgrounds/06 - Operators.playground/Contents.swift	
@@ -0,0 +1,3 @@
+import UIKit
+
+var greeting = "Hello, playground"
diff --git a/Playgrounds/05 - Operators.playground/Pages/02-FlatMap.xcplaygroundpage/Contents.swift b/Playgrounds/06 - Operators.playground/Pages/01-Map.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/05 - Operators.playground/Pages/02-FlatMap.xcplaygroundpage/Contents.swift
rename to Playgrounds/06 - Operators.playground/Pages/01-Map.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/05 - Operators.playground/Pages/03-Zip.xcplaygroundpage/Contents.swift b/Playgrounds/06 - Operators.playground/Pages/02-FlatMap.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/05 - Operators.playground/Pages/03-Zip.xcplaygroundpage/Contents.swift
rename to Playgrounds/06 - Operators.playground/Pages/02-FlatMap.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/05 - Operators.playground/Pages/04-Reduce.xcplaygroundpage/Contents.swift b/Playgrounds/06 - Operators.playground/Pages/03-Zip.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/05 - Operators.playground/Pages/04-Reduce.xcplaygroundpage/Contents.swift
rename to Playgrounds/06 - Operators.playground/Pages/03-Zip.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/05 - Operators.playground/Pages/05-Filter.xcplaygroundpage/Contents.swift b/Playgrounds/06 - Operators.playground/Pages/04-Reduce.xcplaygroundpage/Contents.swift
similarity index 100%
rename from Playgrounds/05 - Operators.playground/Pages/05-Filter.xcplaygroundpage/Contents.swift
rename to Playgrounds/06 - Operators.playground/Pages/04-Reduce.xcplaygroundpage/Contents.swift
diff --git a/Playgrounds/06 - Operators.playground/Pages/05-Filter.xcplaygroundpage/Contents.swift b/Playgrounds/06 - Operators.playground/Pages/05-Filter.xcplaygroundpage/Contents.swift
new file mode 100644
index 0000000..5275afb
--- /dev/null
+++ b/Playgrounds/06 - Operators.playground/Pages/05-Filter.xcplaygroundpage/Contents.swift	
@@ -0,0 +1,7 @@
+//: [Previous](@previous)
+
+import Foundation
+
+var greeting = "Hello, playground"
+
+//: [Next](@next)
diff --git a/Playgrounds/06 - Operators.playground/contents.xcplayground b/Playgrounds/06 - Operators.playground/contents.xcplayground
new file mode 100644
index 0000000..7627317
--- /dev/null
+++ b/Playgrounds/06 - Operators.playground/contents.xcplayground	
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<playground version='5.0' target-platform='ios' buildActiveScheme='true' executeOnSourceChanges='false' importAppTypes='true'>
+    <timeline fileName='timeline.xctimeline'/>
+</playground>
\ No newline at end of file
diff --git a/Playgrounds/05 - Operators.playground/playground.xcworkspace/contents.xcworkspacedata b/Playgrounds/06 - Operators.playground/playground.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from Playgrounds/05 - Operators.playground/playground.xcworkspace/contents.xcworkspacedata
rename to Playgrounds/06 - Operators.playground/playground.xcworkspace/contents.xcworkspacedata
diff --git a/Playgrounds/06 - Operators.playground/timeline.xctimeline b/Playgrounds/06 - Operators.playground/timeline.xctimeline
new file mode 100644
index 0000000..bf468af
--- /dev/null
+++ b/Playgrounds/06 - Operators.playground/timeline.xctimeline	
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Timeline
+   version = "3.0">
+   <TimelineItems>
+   </TimelineItems>
+</Timeline>
diff --git a/Playgrounds/07 - Promises.playground/Contents.swift b/Playgrounds/07 - Promises.playground/Contents.swift
new file mode 100644
index 0000000..9d86688
--- /dev/null
+++ b/Playgrounds/07 - Promises.playground/Contents.swift	
@@ -0,0 +1,3 @@
+import UIKit
+
+var greeting = "Hello, playground"
diff --git a/Playgrounds/07 - Promises.playground/contents.xcplayground b/Playgrounds/07 - Promises.playground/contents.xcplayground
new file mode 100644
index 0000000..7627317
--- /dev/null
+++ b/Playgrounds/07 - Promises.playground/contents.xcplayground	
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<playground version='5.0' target-platform='ios' buildActiveScheme='true' executeOnSourceChanges='false' importAppTypes='true'>
+    <timeline fileName='timeline.xctimeline'/>
+</playground>
\ No newline at end of file
diff --git a/Playgrounds/07 - Promises.playground/playground.xcworkspace/contents.xcworkspacedata b/Playgrounds/07 - Promises.playground/playground.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..94b2795
--- /dev/null
+++ b/Playgrounds/07 - Promises.playground/playground.xcworkspace/contents.xcworkspacedata	
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+</Workspace>
diff --git a/Playgrounds/07 - Promises.playground/timeline.xctimeline b/Playgrounds/07 - Promises.playground/timeline.xctimeline
new file mode 100644
index 0000000..bf468af
--- /dev/null
+++ b/Playgrounds/07 - Promises.playground/timeline.xctimeline	
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Timeline
+   version = "3.0">
+   <TimelineItems>
+   </TimelineItems>
+</Timeline>
diff --git a/README.md b/README.md
index ba16909..d06503e 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,15 @@
 # FreeCombine
 
-### Combine.  Only free.
+### Combine.  Only free. And concurrent.
 
 * Protocol-free.
 * Race-free.
-* Yield-free.
-* Sleep-free.
-* Lock-free.
+    * Yield-free.
+    * Sleep-free.
 * Leak-free.
+    * Unbounded queue-free.
+* Lock-free.
 * Dependency-free.
-* Unbounded queue-free.
 
 ### Salient features
 1. "Small things that compose"