diff --git a/.git/COMMIT_EDITMSG b/.git/COMMIT_EDITMSG
--- a/.git/COMMIT_EDITMSG
+++ b/.git/COMMIT_EDITMSG
@@ -1,1 +1,1 @@
-Static file handling
+0.2.2 - POST DATA
diff --git a/.git/FETCH_HEAD b/.git/FETCH_HEAD
--- a/.git/FETCH_HEAD
+++ b/.git/FETCH_HEAD
@@ -1,1 +1,1 @@
-2e95147d7a2c86bb224527a5624c118b53f9c736		branch 'master' of github.com:Hamcha/Ketchup
+a06d1fbe75dfe3b2ebe7e03bed4f97c8b05468e3		branch 'master' of github.com:Hamcha/ketchup
diff --git a/.git/ORIG_HEAD b/.git/ORIG_HEAD
--- a/.git/ORIG_HEAD
+++ b/.git/ORIG_HEAD
@@ -1,1 +1,1 @@
-6dd1040ce0fbc93348725498c912f0e19175d433
+c09136db3f6d1b79503253d341373405dd2f0e13
diff --git a/.git/config b/.git/config
--- a/.git/config
+++ b/.git/config
@@ -4,7 +4,7 @@
 	bare = false
 	logallrefupdates = true
 [remote "origin"]
-	url = git@github.com:Hamcha/Ketchup.git
+	url = git@github.com:Hamcha/ketchup.git
 	fetch = +refs/heads/*:refs/remotes/origin/*
 [branch "master"]
 	remote = origin
diff --git a/.git/hooks/pre-rebase.sample b/.git/hooks/pre-rebase.sample
--- a/.git/hooks/pre-rebase.sample
+++ b/.git/hooks/pre-rebase.sample
@@ -65,7 +65,7 @@
 	fi
 else
 	not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
-	/usr/bin/perl -e '
+	/usr/local/bin/perl -e '
 		my $topic = $ARGV[0];
 		my $msg = "* $topic has commits already merged to public branch:\n";
 		my (%not_in_next) = map {
diff --git a/.git/hooks/prepare-commit-msg.sample b/.git/hooks/prepare-commit-msg.sample
--- a/.git/hooks/prepare-commit-msg.sample
+++ b/.git/hooks/prepare-commit-msg.sample
@@ -22,10 +22,10 @@
 
 case "$2,$3" in
   merge,)
-    /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;
+    /usr/local/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;
 
 # ,|template,)
-#   /usr/bin/perl -i.bak -pe '
+#   /usr/local/bin/perl -i.bak -pe '
 #      print "\n" . `git diff --cached --name-status -r`
 #	 if /^#/ && $first++ == 0' "$1" ;;
 
diff --git a/.git/index b/.git/index
Binary files a/.git/index and b/.git/index differ
diff --git a/.git/logs/HEAD b/.git/logs/HEAD
--- a/.git/logs/HEAD
+++ b/.git/logs/HEAD
@@ -1,4 +1,17 @@
-0000000000000000000000000000000000000000 6dd1040ce0fbc93348725498c912f0e19175d433 hamcha <hamcha@localhost.localdomain> 1400936747 +0200	clone: from git@github.com:Hamcha/Ketchup.git
-6dd1040ce0fbc93348725498c912f0e19175d433 2e95147d7a2c86bb224527a5624c118b53f9c736 hamcha <hamcha@localhost.localdomain> 1400972318 +0200	pull: Fast-forward
-2e95147d7a2c86bb224527a5624c118b53f9c736 41bb1c25a293d0754c3554f5a07a8a2a883b40d8 Hamcha <zikyky@gmail.com> 1401224802 +0200	commit: Regexp matching
-41bb1c25a293d0754c3554f5a07a8a2a883b40d8 73e675e209d1125be27d5c119389c9337942f3b9 Hamcha <zikyky@gmail.com> 1401228393 +0200	commit: Static file handling
+0000000000000000000000000000000000000000 c1ef5202b4e0351ba9c95229c0edf7dfbfb9bb33 Hamcha <zikyky@gmail.com> 1400868061 +0200	commit (initial): Base commit (most code from httpd)
+c1ef5202b4e0351ba9c95229c0edf7dfbfb9bb33 b197449e22aa6e00dcbb765294c13b957ad35207 Hamcha <zikyky@gmail.com> 1400868225 +0200	commit: Took some useless stuff out
+b197449e22aa6e00dcbb765294c13b957ad35207 622888f76a4bd37398710e1590463719c2129297 Hamcha <zikyky@gmail.com> 1400868258 +0200	commit: .gitignore to avoid commiting binaries or object files
+622888f76a4bd37398710e1590463719c2129297 d752cbde2090cf51b382e0060e0d13a90ef9dfa8 Hamcha <zikyky@gmail.com> 1400871180 +0200	commit: Basic routing should work
+d752cbde2090cf51b382e0060e0d13a90ef9dfa8 708b4d9119f776f28cc85a2a0f58b4bf1c1e7b43 Hamcha <zikyky@gmail.com> 1400871591 +0200	commit: Added types
+708b4d9119f776f28cc85a2a0f58b4bf1c1e7b43 722f61d1774f7fbd456a5ab611c54408e61f2cc6 Hamcha <zikyky@gmail.com> 1400872235 +0200	commit: Replaced incorrect 400 errors with 404 ones
+722f61d1774f7fbd456a5ab611c54408e61f2cc6 1093f2858a4572a7a141c96f251f273da4d55c89 Hamcha <zikyky@gmail.com> 1400884141 +0200	commit: Removed some oleg sauce
+1093f2858a4572a7a141c96f251f273da4d55c89 cf34a7265591f7c3f2d241bd7a554e96c85c68d5 Hamcha <zikyky@gmail.com> 1400935032 +0200	commit: Hackage stuff
+cf34a7265591f7c3f2d241bd7a554e96c85c68d5 6dd1040ce0fbc93348725498c912f0e19175d433 Hamcha <zikyky@gmail.com> 1400936077 +0200	commit: README
+6dd1040ce0fbc93348725498c912f0e19175d433 691816444999b3c2b424bdcef7eeb977fa8b18a5 Hamcha <zikyky@gmail.com> 1400953254 +0200	commit: Chunked encoding
+691816444999b3c2b424bdcef7eeb977fa8b18a5 ab41fa19ef0fbeb0088d8f325b1dc4280cbe9817 Hamcha <zikyky@gmail.com> 1400953623 +0200	commit: Forgot to make it visible
+ab41fa19ef0fbeb0088d8f325b1dc4280cbe9817 2e95147d7a2c86bb224527a5624c118b53f9c736 Hamcha <zikyky@gmail.com> 1400960297 +0200	commit: Removed SERVER header and set to 0.1.1
+2e95147d7a2c86bb224527a5624c118b53f9c736 718178fa1b3fc34b7d7d961792c09b4b7b531b3e Hamcha <zikyky@gmail.com> 1401303609 +0200	pull: Fast-forward
+718178fa1b3fc34b7d7d961792c09b4b7b531b3e b473be4e130f0ee35eb42d4037b2c99ee5003326 Hamcha <zikyky@gmail.com> 1401319907 +0200	commit: Ketchup has been Haddock'ed
+b473be4e130f0ee35eb42d4037b2c99ee5003326 c09136db3f6d1b79503253d341373405dd2f0e13 Hamcha <zikyky@gmail.com> 1401541834 +0200	commit: Switch to PCRE regexps
+c09136db3f6d1b79503253d341373405dd2f0e13 a06d1fbe75dfe3b2ebe7e03bed4f97c8b05468e3 Hamcha <zikyky@gmail.com> 1401998815 +0200	pull: Fast-forward
+a06d1fbe75dfe3b2ebe7e03bed4f97c8b05468e3 a8f041ca842f9d4b30406cf727910b74b3cc92d6 Hamcha <zikyky@gmail.com> 1402149852 +0200	commit: 0.2.2 - POST DATA
diff --git a/.git/logs/refs/heads/master b/.git/logs/refs/heads/master
--- a/.git/logs/refs/heads/master
+++ b/.git/logs/refs/heads/master
@@ -1,4 +1,17 @@
-0000000000000000000000000000000000000000 6dd1040ce0fbc93348725498c912f0e19175d433 hamcha <hamcha@localhost.localdomain> 1400936747 +0200	clone: from git@github.com:Hamcha/Ketchup.git
-6dd1040ce0fbc93348725498c912f0e19175d433 2e95147d7a2c86bb224527a5624c118b53f9c736 hamcha <hamcha@localhost.localdomain> 1400972318 +0200	pull: Fast-forward
-2e95147d7a2c86bb224527a5624c118b53f9c736 41bb1c25a293d0754c3554f5a07a8a2a883b40d8 Hamcha <zikyky@gmail.com> 1401224802 +0200	commit: Regexp matching
-41bb1c25a293d0754c3554f5a07a8a2a883b40d8 73e675e209d1125be27d5c119389c9337942f3b9 Hamcha <zikyky@gmail.com> 1401228393 +0200	commit: Static file handling
+0000000000000000000000000000000000000000 c1ef5202b4e0351ba9c95229c0edf7dfbfb9bb33 Hamcha <zikyky@gmail.com> 1400868061 +0200	commit (initial): Base commit (most code from httpd)
+c1ef5202b4e0351ba9c95229c0edf7dfbfb9bb33 b197449e22aa6e00dcbb765294c13b957ad35207 Hamcha <zikyky@gmail.com> 1400868225 +0200	commit: Took some useless stuff out
+b197449e22aa6e00dcbb765294c13b957ad35207 622888f76a4bd37398710e1590463719c2129297 Hamcha <zikyky@gmail.com> 1400868258 +0200	commit: .gitignore to avoid commiting binaries or object files
+622888f76a4bd37398710e1590463719c2129297 d752cbde2090cf51b382e0060e0d13a90ef9dfa8 Hamcha <zikyky@gmail.com> 1400871180 +0200	commit: Basic routing should work
+d752cbde2090cf51b382e0060e0d13a90ef9dfa8 708b4d9119f776f28cc85a2a0f58b4bf1c1e7b43 Hamcha <zikyky@gmail.com> 1400871591 +0200	commit: Added types
+708b4d9119f776f28cc85a2a0f58b4bf1c1e7b43 722f61d1774f7fbd456a5ab611c54408e61f2cc6 Hamcha <zikyky@gmail.com> 1400872235 +0200	commit: Replaced incorrect 400 errors with 404 ones
+722f61d1774f7fbd456a5ab611c54408e61f2cc6 1093f2858a4572a7a141c96f251f273da4d55c89 Hamcha <zikyky@gmail.com> 1400884141 +0200	commit: Removed some oleg sauce
+1093f2858a4572a7a141c96f251f273da4d55c89 cf34a7265591f7c3f2d241bd7a554e96c85c68d5 Hamcha <zikyky@gmail.com> 1400935032 +0200	commit: Hackage stuff
+cf34a7265591f7c3f2d241bd7a554e96c85c68d5 6dd1040ce0fbc93348725498c912f0e19175d433 Hamcha <zikyky@gmail.com> 1400936077 +0200	commit: README
+6dd1040ce0fbc93348725498c912f0e19175d433 691816444999b3c2b424bdcef7eeb977fa8b18a5 Hamcha <zikyky@gmail.com> 1400953254 +0200	commit: Chunked encoding
+691816444999b3c2b424bdcef7eeb977fa8b18a5 ab41fa19ef0fbeb0088d8f325b1dc4280cbe9817 Hamcha <zikyky@gmail.com> 1400953623 +0200	commit: Forgot to make it visible
+ab41fa19ef0fbeb0088d8f325b1dc4280cbe9817 2e95147d7a2c86bb224527a5624c118b53f9c736 Hamcha <zikyky@gmail.com> 1400960297 +0200	commit: Removed SERVER header and set to 0.1.1
+2e95147d7a2c86bb224527a5624c118b53f9c736 718178fa1b3fc34b7d7d961792c09b4b7b531b3e Hamcha <zikyky@gmail.com> 1401303609 +0200	pull: Fast-forward
+718178fa1b3fc34b7d7d961792c09b4b7b531b3e b473be4e130f0ee35eb42d4037b2c99ee5003326 Hamcha <zikyky@gmail.com> 1401319907 +0200	commit: Ketchup has been Haddock'ed
+b473be4e130f0ee35eb42d4037b2c99ee5003326 c09136db3f6d1b79503253d341373405dd2f0e13 Hamcha <zikyky@gmail.com> 1401541834 +0200	commit: Switch to PCRE regexps
+c09136db3f6d1b79503253d341373405dd2f0e13 a06d1fbe75dfe3b2ebe7e03bed4f97c8b05468e3 Hamcha <zikyky@gmail.com> 1401998815 +0200	pull: Fast-forward
+a06d1fbe75dfe3b2ebe7e03bed4f97c8b05468e3 a8f041ca842f9d4b30406cf727910b74b3cc92d6 Hamcha <zikyky@gmail.com> 1402149852 +0200	commit: 0.2.2 - POST DATA
diff --git a/.git/logs/refs/remotes/origin/HEAD b/.git/logs/refs/remotes/origin/HEAD
deleted file mode 100644
--- a/.git/logs/refs/remotes/origin/HEAD
+++ /dev/null
@@ -1,1 +0,0 @@
-0000000000000000000000000000000000000000 6dd1040ce0fbc93348725498c912f0e19175d433 hamcha <hamcha@localhost.localdomain> 1400936747 +0200	clone: from git@github.com:Hamcha/Ketchup.git
diff --git a/.git/logs/refs/remotes/origin/master b/.git/logs/refs/remotes/origin/master
--- a/.git/logs/refs/remotes/origin/master
+++ b/.git/logs/refs/remotes/origin/master
@@ -1,3 +1,16 @@
-6dd1040ce0fbc93348725498c912f0e19175d433 2e95147d7a2c86bb224527a5624c118b53f9c736 hamcha <hamcha@localhost.localdomain> 1400972318 +0200	pull: fast-forward
-2e95147d7a2c86bb224527a5624c118b53f9c736 41bb1c25a293d0754c3554f5a07a8a2a883b40d8 Hamcha <zikyky@gmail.com> 1401224806 +0200	update by push
-41bb1c25a293d0754c3554f5a07a8a2a883b40d8 73e675e209d1125be27d5c119389c9337942f3b9 Hamcha <zikyky@gmail.com> 1401228397 +0200	update by push
+0000000000000000000000000000000000000000 c1ef5202b4e0351ba9c95229c0edf7dfbfb9bb33 Hamcha <zikyky@gmail.com> 1400868072 +0200	update by push
+c1ef5202b4e0351ba9c95229c0edf7dfbfb9bb33 622888f76a4bd37398710e1590463719c2129297 Hamcha <zikyky@gmail.com> 1400868261 +0200	update by push
+622888f76a4bd37398710e1590463719c2129297 d752cbde2090cf51b382e0060e0d13a90ef9dfa8 Hamcha <zikyky@gmail.com> 1400871184 +0200	update by push
+d752cbde2090cf51b382e0060e0d13a90ef9dfa8 708b4d9119f776f28cc85a2a0f58b4bf1c1e7b43 Hamcha <zikyky@gmail.com> 1400871595 +0200	update by push
+708b4d9119f776f28cc85a2a0f58b4bf1c1e7b43 722f61d1774f7fbd456a5ab611c54408e61f2cc6 Hamcha <zikyky@gmail.com> 1400872238 +0200	update by push
+722f61d1774f7fbd456a5ab611c54408e61f2cc6 1093f2858a4572a7a141c96f251f273da4d55c89 Hamcha <zikyky@gmail.com> 1400884145 +0200	update by push
+1093f2858a4572a7a141c96f251f273da4d55c89 cf34a7265591f7c3f2d241bd7a554e96c85c68d5 Hamcha <zikyky@gmail.com> 1400935037 +0200	update by push
+cf34a7265591f7c3f2d241bd7a554e96c85c68d5 6dd1040ce0fbc93348725498c912f0e19175d433 Hamcha <zikyky@gmail.com> 1400936080 +0200	update by push
+6dd1040ce0fbc93348725498c912f0e19175d433 691816444999b3c2b424bdcef7eeb977fa8b18a5 Hamcha <zikyky@gmail.com> 1400953258 +0200	update by push
+691816444999b3c2b424bdcef7eeb977fa8b18a5 ab41fa19ef0fbeb0088d8f325b1dc4280cbe9817 Hamcha <zikyky@gmail.com> 1400953627 +0200	update by push
+ab41fa19ef0fbeb0088d8f325b1dc4280cbe9817 2e95147d7a2c86bb224527a5624c118b53f9c736 Hamcha <zikyky@gmail.com> 1400960301 +0200	update by push
+2e95147d7a2c86bb224527a5624c118b53f9c736 718178fa1b3fc34b7d7d961792c09b4b7b531b3e Hamcha <zikyky@gmail.com> 1401303609 +0200	pull: fast-forward
+718178fa1b3fc34b7d7d961792c09b4b7b531b3e b473be4e130f0ee35eb42d4037b2c99ee5003326 Hamcha <zikyky@gmail.com> 1401319911 +0200	update by push
+b473be4e130f0ee35eb42d4037b2c99ee5003326 c09136db3f6d1b79503253d341373405dd2f0e13 Hamcha <zikyky@gmail.com> 1401541838 +0200	update by push
+c09136db3f6d1b79503253d341373405dd2f0e13 a06d1fbe75dfe3b2ebe7e03bed4f97c8b05468e3 Hamcha <zikyky@gmail.com> 1401998815 +0200	pull: fast-forward
+a06d1fbe75dfe3b2ebe7e03bed4f97c8b05468e3 a8f041ca842f9d4b30406cf727910b74b3cc92d6 Hamcha <zikyky@gmail.com> 1402149856 +0200	update by push
diff --git a/.git/objects/02/ffa07f6990f74dafd8c9ce6d8fa39b0976d598 b/.git/objects/02/ffa07f6990f74dafd8c9ce6d8fa39b0976d598
new file mode 100644
Binary files /dev/null and b/.git/objects/02/ffa07f6990f74dafd8c9ce6d8fa39b0976d598 differ
diff --git a/.git/objects/0e/1f7af50ca1ce3a4849668a919daaa5e8735d43 b/.git/objects/0e/1f7af50ca1ce3a4849668a919daaa5e8735d43
new file mode 100644
Binary files /dev/null and b/.git/objects/0e/1f7af50ca1ce3a4849668a919daaa5e8735d43 differ
diff --git a/.git/objects/10/93f2858a4572a7a141c96f251f273da4d55c89 b/.git/objects/10/93f2858a4572a7a141c96f251f273da4d55c89
new file mode 100644
Binary files /dev/null and b/.git/objects/10/93f2858a4572a7a141c96f251f273da4d55c89 differ
diff --git a/.git/objects/11/c683f96aaed8fc5cad03cb58c5d1a5cec5f501 b/.git/objects/11/c683f96aaed8fc5cad03cb58c5d1a5cec5f501
new file mode 100644
Binary files /dev/null and b/.git/objects/11/c683f96aaed8fc5cad03cb58c5d1a5cec5f501 differ
diff --git a/.git/objects/1f/e6614e7ded45533c17b26bdb0d4d4f48cc0e79 b/.git/objects/1f/e6614e7ded45533c17b26bdb0d4d4f48cc0e79
new file mode 100644
Binary files /dev/null and b/.git/objects/1f/e6614e7ded45533c17b26bdb0d4d4f48cc0e79 differ
diff --git a/.git/objects/23/8fd86cd3c476d75eec0d7ae736adb96dd1cc60 b/.git/objects/23/8fd86cd3c476d75eec0d7ae736adb96dd1cc60
new file mode 100644
Binary files /dev/null and b/.git/objects/23/8fd86cd3c476d75eec0d7ae736adb96dd1cc60 differ
diff --git a/.git/objects/24/e1f1b0b0f51b252eebca5b168a4e17b4700a4c b/.git/objects/24/e1f1b0b0f51b252eebca5b168a4e17b4700a4c
new file mode 100644
Binary files /dev/null and b/.git/objects/24/e1f1b0b0f51b252eebca5b168a4e17b4700a4c differ
diff --git a/.git/objects/2c/b647573d63d84667f629ea1e26e53bd3f16e44 b/.git/objects/2c/b647573d63d84667f629ea1e26e53bd3f16e44
new file mode 100644
Binary files /dev/null and b/.git/objects/2c/b647573d63d84667f629ea1e26e53bd3f16e44 differ
diff --git a/.git/objects/2d/d01b33323df8fd6ac686cc492d77822e040e1f b/.git/objects/2d/d01b33323df8fd6ac686cc492d77822e040e1f
new file mode 100644
Binary files /dev/null and b/.git/objects/2d/d01b33323df8fd6ac686cc492d77822e040e1f differ
diff --git a/.git/objects/32/4d07aa12666c2f03139f626361d1a810c45bc1 b/.git/objects/32/4d07aa12666c2f03139f626361d1a810c45bc1
new file mode 100644
--- /dev/null
+++ b/.git/objects/32/4d07aa12666c2f03139f626361d1a810c45bc1
@@ -0,0 +1,1 @@
+xÅRÁn1Í:»í¡AÑ	Ò(¨)4"ôPE²«zmÇ7 (ÿÞ1¹¥×ø`Ù~3OïÍóJÛ\|ÎO{§ð}4»ù9º¹Ñk+ª{òÙ8í½´[íVmUÔSYx*Ñcz¬jg=Ácºú]¡¯d¼#lºA¿U6.áÓW^×-Òº®?!rê?øÜFbIJ)b}¥Qàñô²ðm·o@£æèôn_ò)ÏááL\YCh¨·Ø9]x[ÊJªµXvL5­&ët<Ì?î¯­YKâæbÍ\è¿lL"â«!SG¯» l5,²CX6¼1OôUjJV6Þ×Iùq8©uof²F0¼±EÆÐQù<ûÁ¶Ã6¶§#2³Tr@ÀkvµA45ß§}míè@Ä^Ksð.z.ÙR^+jît¯ûIeûFÖæÖá©òoMß4ºâÌd±¸q.`òÏÿ°mé
diff --git a/.git/objects/35/3e50d70c86a2ab186edac1c205561befde3dc7 b/.git/objects/35/3e50d70c86a2ab186edac1c205561befde3dc7
new file mode 100644
Binary files /dev/null and b/.git/objects/35/3e50d70c86a2ab186edac1c205561befde3dc7 differ
diff --git a/.git/objects/36/d1bfaedb400023ee2b6ced7d3847183c454838 b/.git/objects/36/d1bfaedb400023ee2b6ced7d3847183c454838
new file mode 100644
--- /dev/null
+++ b/.git/objects/36/d1bfaedb400023ee2b6ced7d3847183c454838
@@ -0,0 +1,2 @@
+x¥TÁn@íxr"$¶RUU¨¸MR5vªÄU³.(K%¶[÷ß;kÔHå`ÏîÌ¼y3oà^È{¼~óêíÃ\M/¿]~ÄÍWB²wZEÉ÷'Ã_¶e[±rÁñëe§Þ­Ì5¹mË"ÛuÈ¶Å©T9Ñ*â>0Í¼ó­æ¨7zaÜ<aiáÔ~Ô¡p¥uñO¹^KõP)©a4ÂÜ7êàÜÉå×¾ÇÕlöå?æ<+ÎÄ+j7Ã[·ÈùtÇuÝm¬è¦°5\æº%MTíkûÈxL¥¾y ò4GÊ^2wï0ibFºÀÉUd<.µ¤\øp2B$ë ä)R¦XÏ3ÐR®ë(ã5ó?_©_ýføåÚ¼HÖ@i`çs)mY+ÍãT0ÍáW<hX8Å(ýéKu¤AÇiiTÁûM,xÈ¶¯¸ÜaßÇ¶°ÛÊiÍíRa>ö\lD»´6êY+tìKØýQß`Pè_ 3mÖÍùT6KE¤ÑÙ/z®ø	¿é7+Æ¿×÷óÿÇÚ×PÇ´x+%ãëÖí«Hh®à$RÃ3óò@»è6T>/üé9
+Ö¡vãôz^ÏmªØ-}4Jq7­®½§×©ÿ*ý¡X,
diff --git a/.git/objects/3a/e244621eb9dd53cbcca1a8475acf7affae786d b/.git/objects/3a/e244621eb9dd53cbcca1a8475acf7affae786d
new file mode 100644
Binary files /dev/null and b/.git/objects/3a/e244621eb9dd53cbcca1a8475acf7affae786d differ
diff --git a/.git/objects/3c/4e5274662ecf122b692a4b2d4b6054e6ecab6b b/.git/objects/3c/4e5274662ecf122b692a4b2d4b6054e6ecab6b
new file mode 100644
Binary files /dev/null and b/.git/objects/3c/4e5274662ecf122b692a4b2d4b6054e6ecab6b differ
diff --git a/.git/objects/3e/c999f52b623f8b354b6f9f7fdee90db24c3c72 b/.git/objects/3e/c999f52b623f8b354b6f9f7fdee90db24c3c72
new file mode 100644
--- /dev/null
+++ b/.git/objects/3e/c999f52b623f8b354b6f9f7fdee90db24c3c72
@@ -0,0 +1,3 @@
+x¥T[oÓ0æ¹RÿÃQ7©´xAP)H[Ù±nS×iH^s²XsâÌvh
+ßÎq2gM×Â$ò'çâïrì[!oáí»o^ýìÀéþÙñÕþñ!G%$0º4gwv¿ºn'Q!¾ %ELda(Üíx hÝó-ºæRx(à1Ç>1ÃÁºi0JzLÃh[òå6>nâÐ<Â1yôøáBo¡KußD`N±4Áï°.FC`bù°´QA\d3ÃeVý²{ÔÀ@pm@Æµô#S235	ésÐS¥$ ð¡ÀBn§C¸öF+íw)g÷h`ðN¦Ó­°ðÆUjµ°õáÛêÏçàù¾ÄãTDHV[=Õ:×7MUB,i*Ä>Yt&Í,~ueV,µÿpe5%¤¦
+¼BqñÁ©­ò©³§©#­Ö¶Ü]áÐÀÚ¼Èb©Þ¼Ã É!5ç7´kkÁm Õé¨-'Hûõï)¦*½P¦¹ A°Æagg~ðü+7	ÌdJÐ(Þ¦)Í«Eüxà,`YÂâI%°xÎ(©*è¬ºÈh2¯GAV=]­Êÿ	ÝJ	²ÚRïþ°ïzPêzÓ&Aøû9çÛÔomßÈ@n ÿºoÕ©8uÉjÜilz8õÕ´Úäâ8LOíµ°1öæð2i pÊ@ãíÃÊ;ÏÒÅKÄLoR×\ßî¥×ëíõzþªñÛÝ¤ûÈ0^ÍCÙ*ÙnV«ÿÛõ¸ã
diff --git a/.git/objects/45/3bd93c26a9e271a06ba2646d2fed80284a3d7e b/.git/objects/45/3bd93c26a9e271a06ba2646d2fed80284a3d7e
new file mode 100644
Binary files /dev/null and b/.git/objects/45/3bd93c26a9e271a06ba2646d2fed80284a3d7e differ
diff --git a/.git/objects/45/fa42399476a801f23b96599909ab8939757cd4 b/.git/objects/45/fa42399476a801f23b96599909ab8939757cd4
new file mode 100644
Binary files /dev/null and b/.git/objects/45/fa42399476a801f23b96599909ab8939757cd4 differ
diff --git a/.git/objects/49/c47bca8a7edae0d0851b71284aa6b39a400cc4 b/.git/objects/49/c47bca8a7edae0d0851b71284aa6b39a400cc4
new file mode 100644
Binary files /dev/null and b/.git/objects/49/c47bca8a7edae0d0851b71284aa6b39a400cc4 differ
diff --git a/.git/objects/52/36d892553250d98e5b5b322321702f74559556 b/.git/objects/52/36d892553250d98e5b5b322321702f74559556
new file mode 100644
Binary files /dev/null and b/.git/objects/52/36d892553250d98e5b5b322321702f74559556 differ
diff --git a/.git/objects/56/2c5d11641eeb9f7ae77cd0d177fd8c947ed1e9 b/.git/objects/56/2c5d11641eeb9f7ae77cd0d177fd8c947ed1e9
new file mode 100644
Binary files /dev/null and b/.git/objects/56/2c5d11641eeb9f7ae77cd0d177fd8c947ed1e9 differ
diff --git a/.git/objects/57/9bdddcdb0584c78cee8df569174d8e5174a28e b/.git/objects/57/9bdddcdb0584c78cee8df569174d8e5174a28e
new file mode 100644
Binary files /dev/null and b/.git/objects/57/9bdddcdb0584c78cee8df569174d8e5174a28e differ
diff --git a/.git/objects/58/4b0ea086479c87718b10715c5375a4715e6965 b/.git/objects/58/4b0ea086479c87718b10715c5375a4715e6965
new file mode 100644
Binary files /dev/null and b/.git/objects/58/4b0ea086479c87718b10715c5375a4715e6965 differ
diff --git a/.git/objects/5c/ad4e38d5d9795fd867fe17bdc34c18ac26dfc6 b/.git/objects/5c/ad4e38d5d9795fd867fe17bdc34c18ac26dfc6
new file mode 100644
Binary files /dev/null and b/.git/objects/5c/ad4e38d5d9795fd867fe17bdc34c18ac26dfc6 differ
diff --git a/.git/objects/62/2888f76a4bd37398710e1590463719c2129297 b/.git/objects/62/2888f76a4bd37398710e1590463719c2129297
new file mode 100644
--- /dev/null
+++ b/.git/objects/62/2888f76a4bd37398710e1590463719c2129297
@@ -0,0 +1,2 @@
+xMJ1F]çµêt~AÄ¥×¨TjzÊt$ñô6x·ï}<î­éë×§9DÏR}¸HäÂB³çàmMÁ§ÕÍù¤!û²äè\k V.%óìxYKöêê-FC_óÒ¼SãÁË^×ÇÛÖHo'îíB²>Á3ZDsÐ#mÊ¿$sÚtê¶÷!0;Ðw×
+OºoPt§¡r#¥á	g½ÉÝü|7Q,
diff --git a/.git/objects/63/3f2583dc912547dc4bbb06de8bd1a7c275fcf2 b/.git/objects/63/3f2583dc912547dc4bbb06de8bd1a7c275fcf2
new file mode 100644
Binary files /dev/null and b/.git/objects/63/3f2583dc912547dc4bbb06de8bd1a7c275fcf2 differ
diff --git a/.git/objects/65/31a477b445bfd988c03147cd43c5a0e289b426 b/.git/objects/65/31a477b445bfd988c03147cd43c5a0e289b426
new file mode 100644
Binary files /dev/null and b/.git/objects/65/31a477b445bfd988c03147cd43c5a0e289b426 differ
diff --git a/.git/objects/66/5fba0e7ceccafda2b2a4e92e342ff2cbfe8247 b/.git/objects/66/5fba0e7ceccafda2b2a4e92e342ff2cbfe8247
new file mode 100644
--- /dev/null
+++ b/.git/objects/66/5fba0e7ceccafda2b2a4e92e342ff2cbfe8247
@@ -0,0 +1,2 @@
+x+)JMU041c040031QÐKÏ,ÉLÏË/Je`ú¿ >sÂwßõ7NËí_<³ìê PðN-IÎ(-`¼Æò¡EóÃÕ%óËz+¹³EHÚBÍñMÌNMËÌIeh|oz}³³»Èª¥%·øW~ËªI­HÌ-ÈIÕË(f0òe_%£Ï,<?)9ñâ
+#ÑÍ:
diff --git a/.git/objects/69/367db2a6835d21762b09eec97395dd0f1d503e b/.git/objects/69/367db2a6835d21762b09eec97395dd0f1d503e
new file mode 100644
Binary files /dev/null and b/.git/objects/69/367db2a6835d21762b09eec97395dd0f1d503e differ
diff --git a/.git/objects/69/8a48637c6765d29ae84a3e63bf4e878af2ae6d b/.git/objects/69/8a48637c6765d29ae84a3e63bf4e878af2ae6d
new file mode 100644
--- /dev/null
+++ b/.git/objects/69/8a48637c6765d29ae84a3e63bf4e878af2ae6d
@@ -0,0 +1,2 @@
+xußOã0Çï¹5h¥µÇN:	!Äøy:mO¡qi´¬)L§ûßÏIµ­G_Û_;ö'~ÖæoÒ=¸=»»]_ÂýZmD9!«ª{éß(ZÙhßHyÙÔÙ©<ÁµÞK´EjYKðÚ­
+.l´"lËeç¥°G ¾ÐEíÃãu6_(5ÅÊ.«ÜHnî³fÝàQ-¿ÏHi÷9|ônìâË@6VKü¬á2»Ps2v±4è®ÆËå(¢4ìRTR£Zzp|£#HOabò?ÝL§øÚ #6,|$gÖNj×H¼è×=ÄÉú¢ÂhÊJÅW¨KC&TÖ|c-¨dÏ(ËMyÓÆ*ô´Q:Q!+ý//1_ÔmìÃºTSÕ¢÷t8Iùî*Þ§ÊäÂ!0)û;úAÒÀAáqLmà'eôÔwªlñéôÆJ>b­WÃÃCÇ½sSVNW5öúó%¿óSÒÎºS ]ó7¼ÞsÄB4üÜ³hjØgï*Î¨8¢,Ût¾©Òú ¿ñ>âj­¾lzñÐLGõ#Üº2Óá×¢í+ügFÆè¢±{mxºáñ\0·ÓµNÍyIL°[Ç5V/¼11ï5ñjÅÃ!ô²¬@­0GÀ	BíÖæîxÜJô¤ä\
diff --git a/.git/objects/6d/d1040ce0fbc93348725498c912f0e19175d433 b/.git/objects/6d/d1040ce0fbc93348725498c912f0e19175d433
new file mode 100644
Binary files /dev/null and b/.git/objects/6d/d1040ce0fbc93348725498c912f0e19175d433 differ
diff --git a/.git/objects/70/8b4d9119f776f28cc85a2a0f58b4bf1c1e7b43 b/.git/objects/70/8b4d9119f776f28cc85a2a0f58b4bf1c1e7b43
new file mode 100644
--- /dev/null
+++ b/.git/objects/70/8b4d9119f776f28cc85a2a0f58b4bf1c1e7b43
@@ -0,0 +1,2 @@
+xÎM
+Â0@a×9Åìü5Ñ×&[jl©qQOo¯àöÁ/ÍµÆC[EÀùÂÎX":¨±=u¸d)ø²S¯òj7©Ïb0¯{ v(µeB)GÅ6Ì+Ü¹¦áü§mÚ®ÊãóæzícÐ4Ñ ª½îkMþBê³dhÛ"oõÌP@Ú
diff --git a/.git/objects/71/8178fa1b3fc34b7d7d961792c09b4b7b531b3e b/.git/objects/71/8178fa1b3fc34b7d7d961792c09b4b7b531b3e
new file mode 100644
Binary files /dev/null and b/.git/objects/71/8178fa1b3fc34b7d7d961792c09b4b7b531b3e differ
diff --git a/.git/objects/72/2f61d1774f7fbd456a5ab611c54408e61f2cc6 b/.git/objects/72/2f61d1774f7fbd456a5ab611c54408e61f2cc6
new file mode 100644
Binary files /dev/null and b/.git/objects/72/2f61d1774f7fbd456a5ab611c54408e61f2cc6 differ
diff --git a/.git/objects/77/a5e6a3a94cbd5f7facc47bed8c940ab8ad3f5c b/.git/objects/77/a5e6a3a94cbd5f7facc47bed8c940ab8ad3f5c
new file mode 100644
Binary files /dev/null and b/.git/objects/77/a5e6a3a94cbd5f7facc47bed8c940ab8ad3f5c differ
diff --git a/.git/objects/7a/e848a180a7f100d45ab5ac2437fc0adde1f80e b/.git/objects/7a/e848a180a7f100d45ab5ac2437fc0adde1f80e
new file mode 100644
Binary files /dev/null and b/.git/objects/7a/e848a180a7f100d45ab5ac2437fc0adde1f80e differ
diff --git a/.git/objects/7b/47d4cbaad3be6b78ecb8c575ffc37bd46a5e5b b/.git/objects/7b/47d4cbaad3be6b78ecb8c575ffc37bd46a5e5b
new file mode 100644
Binary files /dev/null and b/.git/objects/7b/47d4cbaad3be6b78ecb8c575ffc37bd46a5e5b differ
diff --git a/.git/objects/7c/e9930fef6b52b551fff42c7b10fde4d08baa0a b/.git/objects/7c/e9930fef6b52b551fff42c7b10fde4d08baa0a
new file mode 100644
Binary files /dev/null and b/.git/objects/7c/e9930fef6b52b551fff42c7b10fde4d08baa0a differ
diff --git a/.git/objects/7e/51503aee21f2d28f8a91d72e4c081cb7b399e6 b/.git/objects/7e/51503aee21f2d28f8a91d72e4c081cb7b399e6
new file mode 100644
Binary files /dev/null and b/.git/objects/7e/51503aee21f2d28f8a91d72e4c081cb7b399e6 differ
diff --git a/.git/objects/81/ef35d79e1603434714aaa57410da0fa9f71e6e b/.git/objects/81/ef35d79e1603434714aaa57410da0fa9f71e6e
new file mode 100644
Binary files /dev/null and b/.git/objects/81/ef35d79e1603434714aaa57410da0fa9f71e6e differ
diff --git a/.git/objects/85/2ae7db61bff45b972b9a21023e162f5003d74d b/.git/objects/85/2ae7db61bff45b972b9a21023e162f5003d74d
new file mode 100644
--- /dev/null
+++ b/.git/objects/85/2ae7db61bff45b972b9a21023e162f5003d74d
@@ -0,0 +1,1 @@
+x±jÃ0;ü?dIi	H!vKv¡³b"m9'¹¥¾{%7vª¶Ó}Ü}ÿ[Ärµºù3<mwíî/oÄ­Wô>²ëO3ñUeÑy=¶Gy®e1G¢º²XàÝS]7x8ªuÆÆ½JV~&BTÿc²¶o3\_a\ß43»°TC¼[d1±o¢ó=çÉ°KQ¢2Ã¾¥Së5ªßâîO}¡600eU¦ÌécZ2¥ËJÍZjöÃ«ué\¹okßsð
diff --git a/.git/objects/85/d7f3da362229792ee03571c10da871b205a69f b/.git/objects/85/d7f3da362229792ee03571c10da871b205a69f
new file mode 100644
Binary files /dev/null and b/.git/objects/85/d7f3da362229792ee03571c10da871b205a69f differ
diff --git a/.git/objects/85/df8a78c3966d87d24b5e8eac0a2bdcbf243c47 b/.git/objects/85/df8a78c3966d87d24b5e8eac0a2bdcbf243c47
new file mode 100644
Binary files /dev/null and b/.git/objects/85/df8a78c3966d87d24b5e8eac0a2bdcbf243c47 differ
diff --git a/.git/objects/89/2ea0f9d3ad0fefdbacb4e06c7629c1d4317bad b/.git/objects/89/2ea0f9d3ad0fefdbacb4e06c7629c1d4317bad
new file mode 100644
Binary files /dev/null and b/.git/objects/89/2ea0f9d3ad0fefdbacb4e06c7629c1d4317bad differ
diff --git a/.git/objects/8a/4e26e09c96d9bd95bbefa4c2cde4fbf8087382 b/.git/objects/8a/4e26e09c96d9bd95bbefa4c2cde4fbf8087382
new file mode 100644
--- /dev/null
+++ b/.git/objects/8a/4e26e09c96d9bd95bbefa4c2cde4fbf8087382
@@ -0,0 +1,1 @@
+xKÊÉOR0·`HÌÉ±RH­HÌ-ÈIååâå2­x¹8Ó3a2zÅ ÉäÔÄ<TQ®^¾>ÔËÈ332Ißå
diff --git a/.git/objects/91/e943bb62869a6178db375f7cb03e274ee28ca5 b/.git/objects/91/e943bb62869a6178db375f7cb03e274ee28ca5
new file mode 100644
Binary files /dev/null and b/.git/objects/91/e943bb62869a6178db375f7cb03e274ee28ca5 differ
diff --git a/.git/objects/93/ac39e13883ec31ab749f768d790b6b14a0193d b/.git/objects/93/ac39e13883ec31ab749f768d790b6b14a0193d
new file mode 100644
Binary files /dev/null and b/.git/objects/93/ac39e13883ec31ab749f768d790b6b14a0193d differ
diff --git a/.git/objects/99/ea1f98242bf7bd4527f7137c29cecb1dc6964a b/.git/objects/99/ea1f98242bf7bd4527f7137c29cecb1dc6964a
new file mode 100644
Binary files /dev/null and b/.git/objects/99/ea1f98242bf7bd4527f7137c29cecb1dc6964a differ
diff --git a/.git/objects/9c/54e55cc84dfa3ff2649648983bc83143370b10 b/.git/objects/9c/54e55cc84dfa3ff2649648983bc83143370b10
new file mode 100644
Binary files /dev/null and b/.git/objects/9c/54e55cc84dfa3ff2649648983bc83143370b10 differ
diff --git a/.git/objects/a0/6d1fbe75dfe3b2ebe7e03bed4f97c8b05468e3 b/.git/objects/a0/6d1fbe75dfe3b2ebe7e03bed4f97c8b05468e3
new file mode 100644
Binary files /dev/null and b/.git/objects/a0/6d1fbe75dfe3b2ebe7e03bed4f97c8b05468e3 differ
diff --git a/.git/objects/a4/52888e3b29d25f2f4b06e3f1cae1ddba210add b/.git/objects/a4/52888e3b29d25f2f4b06e3f1cae1ddba210add
new file mode 100644
--- /dev/null
+++ b/.git/objects/a4/52888e3b29d25f2f4b06e3f1cae1ddba210add
@@ -0,0 +1,1 @@
+xEÐAKÃ0`Ïþì¢²vUAv¨UeÎÒæÓ²¤K¿¨Cüï&ÛÔBÞäÉÔÊÔpv~rðávz7{Î®áþ­2\ x"+õ[Ãø;DN!,¸ÔðÑ¢Å°(W±ÿã©i]Ì:ñ¯WòU¢+N<)6;xEZ®×[-Àâ.@hØµxÄNm¶ÙiByÈ.&Ô/7²QÉ?iÜÒJ±ê¨ò@ßÝûØwÓßÀóEÒÝpe§Ðæ/Æ»öäfuÎFÎªËÆu÷XµS}âge8²ýð/¡6(é=_.3¤vÏû}«q1
diff --git a/.git/objects/a8/f041ca842f9d4b30406cf727910b74b3cc92d6 b/.git/objects/a8/f041ca842f9d4b30406cf727910b74b3cc92d6
new file mode 100644
--- /dev/null
+++ b/.git/objects/a8/f041ca842f9d4b30406cf727910b74b3cc92d6
@@ -0,0 +1,3 @@
+xA
+Â0E]ç³ËdÒ¤	XpáNA/¤[j¬¸¨§·Wp÷y¼?N9HM!$î¬ÓÔÉ±Q!¢´]QªFZÆPdñö3¿
+x4«¸Ñ]b×É¨wurM´um,+á?¥f8û{ûï0.ãr|d?<«8åÈIÖÎj-¢Xéz­ð_À*\/·;Ú{+~rB4
diff --git a/.git/objects/ab/8f12f061e87b2922d0371d0c9e971ca49c8de3 b/.git/objects/ab/8f12f061e87b2922d0371d0c9e971ca49c8de3
new file mode 100644
Binary files /dev/null and b/.git/objects/ab/8f12f061e87b2922d0371d0c9e971ca49c8de3 differ
diff --git a/.git/objects/ae/3bc1e76696168e39e4cf60afc4131175005b11 b/.git/objects/ae/3bc1e76696168e39e4cf60afc4131175005b11
new file mode 100644
Binary files /dev/null and b/.git/objects/ae/3bc1e76696168e39e4cf60afc4131175005b11 differ
diff --git a/.git/objects/ae/599a4b87624927da288aa5cd12b2b47b0c7e2d b/.git/objects/ae/599a4b87624927da288aa5cd12b2b47b0c7e2d
new file mode 100644
Binary files /dev/null and b/.git/objects/ae/599a4b87624927da288aa5cd12b2b47b0c7e2d differ
diff --git a/.git/objects/ae/d160a086ca22c96b3918eb9525818ab4adf8f8 b/.git/objects/ae/d160a086ca22c96b3918eb9525818ab4adf8f8
new file mode 100644
Binary files /dev/null and b/.git/objects/ae/d160a086ca22c96b3918eb9525818ab4adf8f8 differ
diff --git a/.git/objects/b1/97449e22aa6e00dcbb765294c13b957ad35207 b/.git/objects/b1/97449e22aa6e00dcbb765294c13b957ad35207
new file mode 100644
--- /dev/null
+++ b/.git/objects/b1/97449e22aa6e00dcbb765294c13b957ad35207
@@ -0,0 +1,3 @@
+xÎM
+Â0@a×9ÅìN~ÚKà&ÉDK&]èéõ
+n|ðb-eî@äv}cuH^GrìÆÑ&g\¢,iBë4zñ*Ïql	)AmÀ>zKä#JÊcÊ!Ö·~¯+\¸Ä;Ãñ3/ïå}¾XË	8¹ÈÂ	Qýêo­Ë_H]k] Õ"°5yHkÐú3Ô­«/THg
diff --git a/.git/objects/b4/73be4e130f0ee35eb42d4037b2c99ee5003326 b/.git/objects/b4/73be4e130f0ee35eb42d4037b2c99ee5003326
new file mode 100644
--- /dev/null
+++ b/.git/objects/b4/73be4e130f0ee35eb42d4037b2c99ee5003326
@@ -0,0 +1,1 @@
+xAnÃ0sÖ+xË¡@AJ®eAc¾"©Øp®rH^_}¡ÇÝÁbV¶ZÞ¶Á¼1¤Í,y0%>	é(fV÷àÝî"M§ÂC0ä¨QÓH1yÁ{Î_¡3süló¶Ã«Ì§÷²¾Ö×ùZy¹}ÊV¿¤@)aô®·ýZ³Ü5ù²Ù½U7Y¦în¸Gõ
diff --git a/.git/objects/b6/3279c85b76f94cc28de65c1a8c2f65c1814e7e b/.git/objects/b6/3279c85b76f94cc28de65c1a8c2f65c1814e7e
new file mode 100644
Binary files /dev/null and b/.git/objects/b6/3279c85b76f94cc28de65c1a8c2f65c1814e7e differ
diff --git a/.git/objects/bf/ed8952d1f03e073bc0189e9bcc1371850662ce b/.git/objects/bf/ed8952d1f03e073bc0189e9bcc1371850662ce
new file mode 100644
Binary files /dev/null and b/.git/objects/bf/ed8952d1f03e073bc0189e9bcc1371850662ce differ
diff --git a/.git/objects/c0/9136db3f6d1b79503253d341373405dd2f0e13 b/.git/objects/c0/9136db3f6d1b79503253d341373405dd2f0e13
new file mode 100644
Binary files /dev/null and b/.git/objects/c0/9136db3f6d1b79503253d341373405dd2f0e13 differ
diff --git a/.git/objects/c1/ef5202b4e0351ba9c95229c0edf7dfbfb9bb33 b/.git/objects/c1/ef5202b4e0351ba9c95229c0edf7dfbfb9bb33
new file mode 100644
--- /dev/null
+++ b/.git/objects/c1/ef5202b4e0351ba9c95229c0edf7dfbfb9bb33
@@ -0,0 +1,2 @@
+xA
+Â0E]ç³T1i¸òcÚRH;.êéxïÃã¿TDFÍFç¡·lÎg{fËÔ¶!4xGJb²Éß:n,i`8}ÆiÖËCx|R3C>¢'ØãÑÔµ^iþK2W^2üTØJY´BW;ç"0¨¾ºù¢;U
diff --git a/.git/objects/c6/56325a56d86c044bb5136b9e8dafa421c4f758 b/.git/objects/c6/56325a56d86c044bb5136b9e8dafa421c4f758
new file mode 100644
Binary files /dev/null and b/.git/objects/c6/56325a56d86c044bb5136b9e8dafa421c4f758 differ
diff --git a/.git/objects/cf/34a7265591f7c3f2d241bd7a554e96c85c68d5 b/.git/objects/cf/34a7265591f7c3f2d241bd7a554e96c85c68d5
new file mode 100644
Binary files /dev/null and b/.git/objects/cf/34a7265591f7c3f2d241bd7a554e96c85c68d5 differ
diff --git a/.git/objects/cf/ed5d601e7c6661a4c95c652d865834a2960cc4 b/.git/objects/cf/ed5d601e7c6661a4c95c652d865834a2960cc4
new file mode 100644
--- /dev/null
+++ b/.git/objects/cf/ed5d601e7c6661a4c95c652d865834a2960cc4
@@ -0,0 +1,1 @@
+x+)JMU041c040031QÐKÏ,ÉLÏË/Je`ú¿ >sÂwßõ7NËí_<³ìê PðN-IÎ(-`xûîý½¦+%ÕOû_ýöC\~í¨9¾Ù©i9©ïM¯ÏcvvYµ´DàÿÊïryP5©¹9©zÅK:ú¬5/Åë{³=þxêáÝ]\w]>¿
diff --git a/.git/objects/d2/5e09437126d6267b441999d66ed90f352e67bd b/.git/objects/d2/5e09437126d6267b441999d66ed90f352e67bd
new file mode 100644
Binary files /dev/null and b/.git/objects/d2/5e09437126d6267b441999d66ed90f352e67bd differ
diff --git a/.git/objects/d7/52cbde2090cf51b382e0060e0d13a90ef9dfa8 b/.git/objects/d7/52cbde2090cf51b382e0060e0d13a90ef9dfa8
new file mode 100644
--- /dev/null
+++ b/.git/objects/d7/52cbde2090cf51b382e0060e0d13a90ef9dfa8
@@ -0,0 +1,1 @@
+xÎMjÃ0@á®uÙÊh¬èB	Yõãñ(¢¢Èôôõº}ðÁVk@äÞFWïOyfÔ *Âya&ÒÉQÎ$sÖH.oîúàb9xvó2)Å`Qí)¡óS°IÈR¢ïcm¾¸ÊÊpþ-Ûk{]nËýCZýël#Â;¢9ê±6ô_È\ùYzÛGyÜà¹¶ý¾ÀOëù:©F¤
diff --git a/.git/objects/d9/50655d5180bc080ff323a21ce6d2c7e369a82b b/.git/objects/d9/50655d5180bc080ff323a21ce6d2c7e369a82b
new file mode 100644
Binary files /dev/null and b/.git/objects/d9/50655d5180bc080ff323a21ce6d2c7e369a82b differ
diff --git a/.git/objects/de/16c2da1cc71609774e151a4e6034c07965db8c b/.git/objects/de/16c2da1cc71609774e151a4e6034c07965db8c
new file mode 100644
Binary files /dev/null and b/.git/objects/de/16c2da1cc71609774e151a4e6034c07965db8c differ
diff --git a/.git/objects/df/0eddb596d9d9aff78156e3cae6300250de9155 b/.git/objects/df/0eddb596d9d9aff78156e3cae6300250de9155
new file mode 100644
Binary files /dev/null and b/.git/objects/df/0eddb596d9d9aff78156e3cae6300250de9155 differ
diff --git a/.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 b/.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
new file mode 100644
Binary files /dev/null and b/.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 differ
diff --git a/.git/objects/e8/7a4422a7db2bee721ce1a88d5286ca1570d36a b/.git/objects/e8/7a4422a7db2bee721ce1a88d5286ca1570d36a
new file mode 100644
Binary files /dev/null and b/.git/objects/e8/7a4422a7db2bee721ce1a88d5286ca1570d36a differ
diff --git a/.git/objects/ea/395fce07d46082dadd0432b33875394c27e62d b/.git/objects/ea/395fce07d46082dadd0432b33875394c27e62d
new file mode 100644
--- /dev/null
+++ b/.git/objects/ea/395fce07d46082dadd0432b33875394c27e62d
@@ -0,0 +1,3 @@
+x}SMÓ0å)ÿaN6îP±U»¢BWl÷°]àl;ÓÄªcGöDmøõ8in9)RôÞyó¡­Ow7O¼À)\H2¯Ê8úÎ+kznÈÆlGK.¸N.äýFlG_*¥Óä¥.»l[UãèQI4þb±yxéÁäÒ-óø°\=mWq´¨(·®÷Fï¹IïHÅÑ+CáÅNõGíë}ý9+¸ÒLÚ"Ö¶Àg½eNTúé`)Ê+Ñhk^Èú^0³®>ÿFq=»­-½ògv¾*Ñ/¸Öp@;¦x°n;ë ´à¹Ô·ZíÊ 4;ndÒ¦(¸GGÍ4ã®#Õ±±i²±iZ6+aË¼2{L¯ÁuhïèÙV¤Lv­Û'%¯±¤t[Ài_±D}
+/Ñ~ÍçØ»ÛSQzrÁ©ÝÏìnn`6d£Q§¶Û¿Ò;Ý¤¥Ê¡¤°^0±÷]¨
+÷uÉÒ¸;Ú µx³1ûØÑ3<&¥tp©a<mòaGéudó¢Íz¶¶rg«Qm}9òvâM5ç£×ÕLE[Æ|úmô¿³cmÈ_±:ù÷
diff --git a/.git/objects/ed/eeef90bd35a9192643cb4fd5f6e108171fadb4 b/.git/objects/ed/eeef90bd35a9192643cb4fd5f6e108171fadb4
new file mode 100644
Binary files /dev/null and b/.git/objects/ed/eeef90bd35a9192643cb4fd5f6e108171fadb4 differ
diff --git a/.git/objects/f3/073c846e4efaa3a1997750b01c078c36a14718 b/.git/objects/f3/073c846e4efaa3a1997750b01c078c36a14718
new file mode 100644
Binary files /dev/null and b/.git/objects/f3/073c846e4efaa3a1997750b01c078c36a14718 differ
diff --git a/.git/objects/f6/2e75a62487a4b516a960e045e193098208502c b/.git/objects/f6/2e75a62487a4b516a960e045e193098208502c
new file mode 100644
Binary files /dev/null and b/.git/objects/f6/2e75a62487a4b516a960e045e193098208502c differ
diff --git a/.git/objects/fb/f8eefabf8c61b21569f198ed873cc8558acd68 b/.git/objects/fb/f8eefabf8c61b21569f198ed873cc8558acd68
new file mode 100644
--- /dev/null
+++ b/.git/objects/fb/f8eefabf8c61b21569f198ed873cc8558acd68
@@ -0,0 +1,3 @@
+x¥SMOÜ0í9RþÃÓ´ié©BÊÒJe[	Zõ8ìm,9qðìÒíg¬Ó%R¥ú<oß¼±o¾ÁÑÑÛ7¯~îáüäËÙ÷³øz/Ò~é¬Zìþ£8ª4÷Jà³p·¥o²í¥ã(¡PÄQR
+âHV6w)¹ã=s,;];ÑfEÉÌ;0b
+¼`M_y+Høä\ÃÛã:¸º%«9i5âÎëÃ2~±Ýèó¡01ÇM1.£qQÏH¼2E²$bwbkÞFãZì£aUöåº@­yö ­´ÿ	òÞÙþkñw#éty£àDÕ(æòú'²ù!][]BÒßY¸ªé¼[{p@®°îsíæ+ä9Öm<^9¾O»h«"«½RX`­®É¦LÙ´ÈJÁ8Ñ÷üx8úéI#Ò¡¹µó×ó¶ç^_èøwóÁ¹ÖÏíÀ^2t-®Î%}K©0Hjí&3ÐHw\7¸ÿÛè3ß§ÝLf³Ù,Ýµ~ÚÏ¤ÈÝDV£©ÛGzÿ?­} ¹Cn
diff --git a/.git/objects/fe/46fa3927ab0bca60de756912a6d427b030a784 b/.git/objects/fe/46fa3927ab0bca60de756912a6d427b030a784
new file mode 100644
Binary files /dev/null and b/.git/objects/fe/46fa3927ab0bca60de756912a6d427b030a784 differ
diff --git a/.git/objects/pack/pack-5ae4b09f7084bd1231ef67774ae0cc24689625e4.idx b/.git/objects/pack/pack-5ae4b09f7084bd1231ef67774ae0cc24689625e4.idx
deleted file mode 100644
Binary files a/.git/objects/pack/pack-5ae4b09f7084bd1231ef67774ae0cc24689625e4.idx and /dev/null differ
diff --git a/.git/objects/pack/pack-5ae4b09f7084bd1231ef67774ae0cc24689625e4.pack b/.git/objects/pack/pack-5ae4b09f7084bd1231ef67774ae0cc24689625e4.pack
deleted file mode 100644
Binary files a/.git/objects/pack/pack-5ae4b09f7084bd1231ef67774ae0cc24689625e4.pack and /dev/null differ
diff --git a/.git/packed-refs b/.git/packed-refs
deleted file mode 100644
--- a/.git/packed-refs
+++ /dev/null
@@ -1,2 +0,0 @@
-# pack-refs with: peeled fully-peeled 
-6dd1040ce0fbc93348725498c912f0e19175d433 refs/remotes/origin/master
diff --git a/.git/refs/heads/master b/.git/refs/heads/master
--- a/.git/refs/heads/master
+++ b/.git/refs/heads/master
@@ -1,1 +1,1 @@
-73e675e209d1125be27d5c119389c9337942f3b9
+a8f041ca842f9d4b30406cf727910b74b3cc92d6
diff --git a/.git/refs/remotes/origin/HEAD b/.git/refs/remotes/origin/HEAD
deleted file mode 100644
--- a/.git/refs/remotes/origin/HEAD
+++ /dev/null
@@ -1,1 +0,0 @@
-ref: refs/remotes/origin/master
diff --git a/.git/refs/remotes/origin/master b/.git/refs/remotes/origin/master
--- a/.git/refs/remotes/origin/master
+++ b/.git/refs/remotes/origin/master
@@ -1,1 +1,1 @@
-73e675e209d1125be27d5c119389c9337942f3b9
+a8f041ca842f9d4b30406cf727910b74b3cc92d6
diff --git a/Ketchup.cabal b/Ketchup.cabal
--- a/Ketchup.cabal
+++ b/Ketchup.cabal
@@ -1,5 +1,5 @@
 Name:           Ketchup
-Version:        0.2.1
+Version:        0.2.2
 Cabal-Version:  >= 1.6
 Build-Type:     Simple
 License:        MIT
@@ -9,7 +9,25 @@
 Homepage:       https://github.com/Hamcha/Ketchup
 Category:       Web, Ketchup
 Synopsis:       A super small web framework for those who don't like big and fancy codebases
+Description:
+    Ketchup is a very small HTTP server implementation, the HTTPd itself is one file with
+    around 100 LoC!
+    .
+    Ketchup is also made to be as modular and embeddable as possible, if you want a cabal-free Haskell app, just take those two/three files you need and put it in your project!
+    .
+    Currently Ketchup comes with:
+    .
+    * Basic httpd functionality (IPV4 only for now)
+    * Regexp routing with parameters (ie. \`/user/:name/(.\*)\`)
+    * Static file handler (ie. \`static \".\"\` as route/handler)
+    .
+    Most of the project is dependency-free and only uses stuff included in Prelude, with the exception of Ketchup.Static who uses the mime-types package from Hackage, which is a single separately downloadable file.
 
+Extra-Source-Files:
+  example.hs,
+  LICENSE,
+  README.md
+
 Library
   Exposed-Modules:
     Ketchup.Chunked
@@ -19,14 +37,14 @@
     Ketchup.Utils
 
   Build-Depends:
-    base          ==4.*,
-    bytestring    >=0.9 && <0.11,
-    containers    >=0.2 && <0.6,
-    directory      <1.3,
-    mime-types     <0.2,
-    network        <2.5,
-    regex-posix    <1.0,
-    text           <2.0
+    base               ==4.*,
+    bytestring         >=0.9 && <0.11,
+    containers         >=0.2 && <0.6,
+    directory           <1.3,
+    mime-types          <0.2,
+    network             <2.5,
+    regex-pcre-builtin  <1.0,
+    text                <2.0
 
 Source-Repository head
   type:       git
diff --git a/Ketchup/Chunked.hs b/Ketchup/Chunked.hs
--- a/Ketchup/Chunked.hs
+++ b/Ketchup/Chunked.hs
@@ -14,21 +14,33 @@
 import           Network.Socket.ByteString
 import           Numeric
 
-chunkHeaders :: Socket -> Int -> [(B.ByteString, [B.ByteString])] -> IO ()
+-- |Send HTTP reply headers and begin a Chunked transmission
+chunkHeaders :: Socket                           -- ^ Socket to write to
+             -> Int                              -- ^ Status code
+             -> [(B.ByteString, [B.ByteString])] -- ^ Headers
+             -> IO ()
 chunkHeaders handle status headers = do
     sendAll handle content
     where
     content = B.concat ["HTTP/1.1 ", statusMsg status, "\r\n\
         \Connection: close\r\n",heads,"\r\n\
         \Transfer-Encoding: chunked\r\n\r\n"]
-    heads = B.concat $ map (\x -> B.concat [fst x, ": ", B.concat $ List.intersperse "," $ snd x]) headers
+    heads = B.concat $ map toHeader headers
+    toHeader x = B.concat [fst x, ": "
+                          ,B.concat $ List.intersperse "," $ snd x
+                          ,"\r\n"]
 
-chunk :: Socket -> B.ByteString -> IO ()
+-- |Sends a chunk
+chunk :: Socket       -- ^ Socket to write to
+      -> B.ByteString -- ^ Content to write
+      -> IO ()
 chunk handle value =
     sendAll handle content
     where
     content = B.concat [B.pack $ showHex (B.length value) "",
                         "\r\n", value, "\r\n"]
 
-endchunk :: Socket -> IO ()
+-- |Send the final/closing chunk
+endchunk :: Socket -- ^ Socket to write to
+         -> IO ()
 endchunk handle = sendAll handle "0\r\n\r\n"
diff --git a/Ketchup/Httpd.hs b/Ketchup/Httpd.hs
--- a/Ketchup/Httpd.hs
+++ b/Ketchup/Httpd.hs
@@ -1,8 +1,9 @@
 {-# LANGUAGE OverloadedStrings #-}
 
 module Ketchup.Httpd
-( HTTPRequest
-, method, uri, httpver, headers
+( HTTPRequest (..)
+, Headers     (..)
+, Handler     (..)
 , listenHTTP
 ) where
 
@@ -16,54 +17,71 @@
 import           Ketchup.Utils
 import           System.IO
 
--- HTTP Request type
-data HTTPRequest = HTTPRequest { method  :: B.ByteString
-                               , uri     :: B.ByteString
-                               , httpver :: B.ByteString
-                               , headers :: Map.Map B.ByteString [B.ByteString]
-                               } deriving (Show)
+type Headers  = Map.Map B.ByteString [B.ByteString]
+type Handler  = Socket -> HTTPRequest -> IO ()
 
+-- |HTTP Request type
+-- This holds a complete HTTP request
+data HTTPRequest = HTTPRequest
+    { method  :: B.ByteString -- ^ Get HTTP Request Method (GET, POST etc.)
+    , uri     :: B.ByteString -- ^ Get Request URI
+    , httpver :: B.ByteString -- ^ Get HTTP Version
+    , headers :: Headers      -- ^ Get HTTP Headers (header, [values])
+    , body    :: B.ByteString -- ^ Get HTTP Post body (raw string)
+    } deriving (Show)
+
 -- Parses header lines
 parseRequestLine :: B.ByteString -> (B.ByteString, [B.ByteString])
 parseRequestLine line =
     (property, values)
     where
     property = head items
-    values = C.split ',' $ (trim . last) items
-    items = C.split ':' line
+    values   = C.split ',' $ (trim . last) items
+    items    = C.split ':' line
 
+-- Parses request body
+parseRequestBody :: B.ByteString -> [(B.ByteString, B.ByteString)]
+parseRequestBody body =
+    map sep items
+    where
+    sep   = breakBS "="
+    items = C.split '&' body
+
 -- Gets all request lines
-getRequest :: Socket -> IO [B.ByteString]
+getRequest :: Socket -> IO ([B.ByteString], B.ByteString)
 getRequest client = do
     content <- recv client 1024
-    return $ C.lines content
+    let (headers, body) = breakBS "\r\n\r\n" content
+    return (C.lines headers, body)
 
 -- Parses requests
-parseRequest :: [B.ByteString] -> HTTPRequest
+parseRequest :: ([B.ByteString], B.ByteString) -> HTTPRequest
 parseRequest reqlines =
-    HTTPRequest { method=met, uri=ur, httpver=ver, headers=heads }
+    HTTPRequest { method=met, uri=ur, httpver=ver, headers=heads, body=body }
     where
-    [met, ur, ver] = (C.words . head) reqlines -- First line is METHOD URI VERSION
-    heads = Map.fromList $ map parseRequestLine $ tail reqlines
+    [met, ur, ver] = C.words $ head headers -- First line is METHOD URI VERSION
+    heads   = Map.fromList $ map parseRequestLine $ tail headers
+    body    = snd reqlines
+    headers = fst reqlines
 
 -- Handles each client request
-handleRequest :: Socket -> (Socket -> HTTPRequest -> IO ()) -> IO ()
+handleRequest :: Socket -> Handler -> IO ()
 handleRequest client cback = do
     reqlines <- getRequest client
-    case length reqlines of
+    case length (fst reqlines) of
         0 -> sendBadRequest client
         _ -> cback client $ parseRequest reqlines
     sClose client
 
 -- Acceptor
-acceptAll :: Socket -> (Socket -> HTTPRequest -> IO ()) -> IO ()
+acceptAll :: Socket -> Handler -> IO ()
 acceptAll sock cback = do
     (client, _) <- NS.accept sock
     handleRequest client cback
     acceptAll sock cback
 
 -- Creates Acceptor pools
-createAcceptorPool :: Socket -> Int -> (Socket -> HTTPRequest -> IO ()) -> IO ()
+createAcceptorPool :: Socket -> Int -> Handler -> IO ()
 createAcceptorPool sock max cback =
     case max of
         0 -> acceptAll sock cback
@@ -76,8 +94,11 @@
 getHostaddr "*"  = return NS.iNADDR_ANY
 getHostaddr host = NS.inet_addr host
 
--- Listens for incoming HTTP request
-listenHTTP :: String -> PortNumber -> (Socket -> HTTPRequest -> IO ()) -> IO ()
+-- |Listens for incoming HTTP request
+listenHTTP :: String        -- ^ Address to bind (ie. "*")
+           -> PortNumber    -- ^ Port to listen on
+           -> Handler       -- ^ Route function to call
+           -> IO ()
 listenHTTP hostname port cback = withSocketsDo $ do
     -- Get hostname
     host <- getHostaddr hostname
diff --git a/Ketchup/Routing.hs b/Ketchup/Routing.hs
--- a/Ketchup/Routing.hs
+++ b/Ketchup/Routing.hs
@@ -9,14 +9,16 @@
 import           Ketchup.Httpd
 import           Ketchup.Utils
 import           Network
-import qualified Text.Regex.Posix as R
+import qualified Text.Regex.PCRE as R
 
-route :: [(C.ByteString, (Socket -> HTTPRequest 
-         -> (M.Map C.ByteString C.ByteString) -> IO ()))]
+-- |Router function
+-- Takes a list of routes and iterates through them for every requeust
+route :: [(C.ByteString, (Socket -> HTTPRequest
+         -> (M.Map C.ByteString C.ByteString) -> IO ()))] -- ^ Routes
          -> (Socket -> HTTPRequest -> IO ())
 route []         handle request = sendNotFound handle
 route (r:routes) handle request
-    | match (uri request) (fst r) = (snd r) handle request $ 
+    | match (uri request) (fst r) = (snd r) handle request $
                                         params (uri request) (fst r)
     | otherwise                   = route routes handle request
 
@@ -35,7 +37,7 @@
 
 params :: C.ByteString -> C.ByteString -> M.Map C.ByteString C.ByteString
 params url template =
-    M.fromList $ filter (not . C.null . fst) $ 
+    M.fromList $ filter (not . C.null . fst) $
         zipWith retrieve urlparts tmpparts
     where
     retrieve x y
diff --git a/Ketchup/Static.hs b/Ketchup/Static.hs
--- a/Ketchup/Static.hs
+++ b/Ketchup/Static.hs
@@ -13,9 +13,10 @@
 import           Network.Mime
 import           System.Directory (doesFileExist)
 
--- Static file handler
-static :: B.ByteString -> Socket -> HTTPRequest 
-          -> (M.Map B.ByteString B.ByteString) -> IO ()
+-- |Static file handler
+-- Takes a directory and returns a route
+static :: B.ByteString -- ^ Path to serve static files from
+          -> Socket -> HTTPRequest -> (M.Map B.ByteString B.ByteString) -> IO ()
 static folder hnd req params = do
     let path = B.concat [folder, uri req]
     let sane = sanecheck path
@@ -25,12 +26,12 @@
         True  -> B.readFile strPath
                  >>= sendReply hnd 200 [("Content-Type",[mime])]
                  where
-                 mime = defaultMimeLookup $ decodeUtf8 fname 
+                 mime = defaultMimeLookup $ decodeUtf8 fname
                  fname = last $ B.split '/' path
         False -> sendNotFound hnd
 
 sanecheck :: B.ByteString -> Bool
-sanecheck url = 
+sanecheck url =
     and checks
     where
     checks = [parentcheck]
diff --git a/Ketchup/Utils.hs b/Ketchup/Utils.hs
--- a/Ketchup/Utils.hs
+++ b/Ketchup/Utils.hs
@@ -2,21 +2,25 @@
 
 module Ketchup.Utils
 ( trim
+, breakBS
+, parseBody
 , sendReply
 , sendBadRequest
 , sendNotFound
 , statusMsg
 ) where
 
-import qualified Data.ByteString as B
-import qualified Data.ByteString.Char8 as C
+import qualified Data.ByteString.Char8 as B
 import           Data.Char (isSpace)
 import qualified Data.List as List
+import qualified Data.Map  as Map
 import           Network
 import           Network.Socket.ByteString
 
--- Returns status message from status id
-statusMsg :: Int -> B.ByteString
+-- |Status Messages
+-- Returns status message from a given status id
+statusMsg :: Int          -- ^ Status code (ex. 404)
+          -> B.ByteString -- ^ Status message (ex. "404 Not Found")
 statusMsg stat
     -- 200 Success
     | stat == 200 = "200 OK"
@@ -36,27 +40,51 @@
     | otherwise   = "500 Internal Server Error"
 
 -- Premade HTTP replies
+
+-- |Send 400 Bad Request error
 sendBadRequest :: Socket -> IO ()
-sendBadRequest client = do
+sendBadRequest client =
     sendReply client 400 [("Content-Type",["text/plain"])] "400 Bad Request!\n"
 
+-- |Send 404 Not Found error
 sendNotFound :: Socket -> IO ()
-sendNotFound client = do
+sendNotFound client =
     sendReply client 404 [("Content-Type",["text/plain"])] "404 Not Found!\n"
 
--- Template for 200 Reply
-sendReply :: Socket -> Int -> [(B.ByteString, [B.ByteString])] -> B.ByteString -> IO ()
-sendReply client status headers body = do
+-- |Send a HTTP reply
+-- Sends a reply with the given parameters
+sendReply :: Socket                           -- ^ Socket to write to
+          -> Int                              -- ^ Status Code to send
+          -> [(B.ByteString, [B.ByteString])] -- ^ HTTP headers ("Header",["value1", "value2"])
+          -> B.ByteString                     -- ^ Body
+          -> IO ()
+sendReply client status headers body =
     sendAll client reply
     where
-    reply = B.concat ["HTTP/1.1 ", statusMsg status,"\r\n\
-        \Content-Length: ", C.pack $ show $ C.length body, "\r\n\
-        \Connection: close\r\n",heads,"\r\n",body]
+    reply = B.concat
+        [ "HTTP/1.1 ", statusMsg status,"\r\n"
+        , "Content-Length: ", B.pack $ show $ B.length body, "\r\n"
+        , "Connection: close\r\n", heads, "\r\n", body]
     -- Turn ("a", ["b", "c"]) headers into "a: b,c"
-    heads = B.concat $ map (\x -> B.concat [fst x, ": ", B.concat $ List.intersperse "," $ snd x, "\r\n"]) headers
-
+    heads = B.concat $ map toHeader headers
+    toHeader x = B.concat [fst x, ": "
+                          ,B.concat $ List.intersperse "," $ snd x
+                          ,"\r\n"]
 
--- Util function for trimming whitespace from headers
+-- |Trim whitespace from headers
 trim :: B.ByteString -> B.ByteString
 trim = f . f
-    where f = C.reverse . C.dropWhile isSpace
+    where f = B.reverse . B.dropWhile isSpace
+
+-- |ByteString breakSubstring wrapper that drops delimiters
+breakBS :: B.ByteString -> B.ByteString -> (B.ByteString, B.ByteString)
+breakBS delimiter source =
+    (first, second)
+    where
+    first  = fst broke
+    second = B.drop (B.length delimiter) $ snd broke
+    broke  = B.breakSubstring delimiter source
+
+-- |Parse a URL-encoded Request
+parseBody :: B.ByteString -> Map.Map B.ByteString B.ByteString
+parseBody body = Map.fromList $ map (breakBS "=") $ B.split '&' body
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
 # Howdy, this is Ketchup!
 
-Ketchup is a very small HTTP server implementation, the HTTPd itself is one file with less than 100 LoC!
+Ketchup is a very small HTTP server implementation, the HTTPd itself is one file with
+around 100 LoC!
 
 Ketchup is also made to be as modular and embeddable as possible, if you want a cabal-free Haskell app, just take those two/three files you need and put it in your project!
 
diff --git a/example.hs b/example.hs
--- a/example.hs
+++ b/example.hs
@@ -10,13 +10,13 @@
 import           Ketchup.Chunked
 import           Ketchup.Static
 
-handle hnd req params = do
+handle hnd req params =
     sendReply hnd 200 [("Content-Type", ["text/html"])] response
     where
     response = B.concat ["<center>You requested <b>", url, "</b></center>"]
     url = uri req
 
-greet hnd req params = do
+greet hnd req params =
     sendReply hnd 200 [("Content-Type", ["text/html"])] response
     where
     response = B.concat ["<h1>Hi ", getName name, "!</h1>"]
@@ -30,7 +30,15 @@
     chunk hnd "AAAAAAAAAHHH"
     endchunk hnd
 
-router = route [("/", handle), ("/greet/:user", greet),
-                ("/chunk", chunked), ("/Ketchup/(.*)", static ".")]
+post hnd req params = do
+    print $ parseBody $ body req
+    sendReply hnd 200 [("Content-Type", ["text/html"])] "OK!"
+
+router = route [ ("/"            , handle     )
+               , ("/greet/:user" , greet      )
+               , ("/chunk"       , chunked    )
+               , ("/Ketchup/(.*)", static "." )
+               , ("/post"        , post       )
+               ]
 
 main = do listenHTTP "*" 8080 router
