diff --git a/first.ru b/first.ru
new file mode 100644
index 00000000..e48c0d20
--- /dev/null
+++ b/first.ru
@@ -0,0 +1,9 @@
+require 'rack'
+
+# Instances of Proc automatically have a call method that runs the block that
+# they're initialized with.
+my_server = Proc.new do
+ [200, {'Content-Type' => 'text/html'}, ['Hello']]
+end
+
+run my_server
\ No newline at end of file
diff --git a/my_server.rb b/my_server.rb
new file mode 100644
index 00000000..183dbafa
--- /dev/null
+++ b/my_server.rb
@@ -0,0 +1,11 @@
+# ./my_server.rb
+
+class MyServer
+ def call(env)
+ return [ 200, {'Content-Type' => 'text/html'}, pretty_response ]
+ end
+
+ def pretty_response
+ (Time.now.to_i % 2).zero? ? ["Hello"] : ["Hello"]
+ end
+end
\ No newline at end of file
diff --git a/second.ru b/second.ru
new file mode 100644
index 00000000..adda6966
--- /dev/null
+++ b/second.ru
@@ -0,0 +1,14 @@
+require 'rack'
+
+#Something that responds to call, that's what Rack demands
+class MyServer
+ def call(env)
+ return [200, {'Content-Type' => 'text/html'}, pretty_response]
+ end
+
+ def pretty_response
+ (Time.now.to_i % 2).zero? ? ["Hello"] : ["Hello"]
+ end
+end
+
+run MyServer.new
\ No newline at end of file
diff --git a/third.ru b/third.ru
new file mode 100644
index 00000000..31f65ab0
--- /dev/null
+++ b/third.ru
@@ -0,0 +1,2 @@
+require_relative './my_server'
+run MyServer.new
\ No newline at end of file