diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f8d95c9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/\.kdev4/
+/log/
+/earthworm.kdev4
diff --git a/config.py b/config.py
new file mode 100644
index 0000000..782aa72
--- /dev/null
+++ b/config.py
@@ -0,0 +1,2 @@
+
+config = dict()
diff --git a/main.py b/main.py
new file mode 100644
index 0000000..c124f91
--- /dev/null
+++ b/main.py
@@ -0,0 +1,12 @@
+
+import uwsgi
+
+from config import config
+from server import Server
+from request import Request
+
+server = Server(config)
+
+def application(env, start_response):
+  request = Request(server, env, start_response)
+  return request.complete("Env:\n" + str(env))
diff --git a/request.py b/request.py
new file mode 100644
index 0000000..e124284
--- /dev/null
+++ b/request.py
@@ -0,0 +1,29 @@
+
+class Request:
+  def __init__(
+    self,
+    server,
+    environ,
+    start_response
+  ):
+    self.server = server
+    self.environ = environ
+    self.start_response = start_response
+
+  def complete(self, result = None, headers = []):
+    content_headers = [('Content-Type','text/html')]
+
+    if not result is None:
+      if not type(result) is bytes:
+        result = bytes(str(result), "utf8")
+
+    result_list = []
+    if result:
+      status = "200 OK"
+      size = 65536
+      for i in range(0, len(result), size):
+        result_list.append(result[i:i + size])
+    else:
+      status = "204 No Content"
+    self.start_response(status, headers + content_headers)
+    return result_list
diff --git a/server.py b/server.py
new file mode 100644
index 0000000..599f279
--- /dev/null
+++ b/server.py
@@ -0,0 +1,4 @@
+
+class Server:
+  def __init__(self, config):
+    self.config = config