diff --git a/Kconfig b/kernel/Kconfig
similarity index 100%
rename from Kconfig
rename to kernel/Kconfig
diff --git a/Makefile b/kernel/Makefile
similarity index 96%
rename from Makefile
rename to kernel/Makefile
index e592ba9d..cea083eb 100644
--- a/Makefile
+++ b/kernel/Makefile
@@ -65,8 +65,8 @@ mars-objs += 				\
 
 endif
 
-.PHONY FORCE: block/mars/buildtag.h
-block/mars/buildtag.h:
+.PHONY FORCE: block/mars/kernel/buildtag.h
+block/mars/kernel/buildtag.h:
 	set -e; exec > $@;\
 	cd block/mars;\
 	/bin/echo -e "/* Automatically generated -- DO NOT EDIT! */";\
diff --git a/brick.c b/kernel/brick.c
similarity index 100%
rename from brick.c
rename to kernel/brick.c
diff --git a/brick.h b/kernel/brick.h
similarity index 100%
rename from brick.h
rename to kernel/brick.h
diff --git a/brick_atomic.h b/kernel/brick_atomic.h
similarity index 100%
rename from brick_atomic.h
rename to kernel/brick_atomic.h
diff --git a/brick_checking.h b/kernel/brick_checking.h
similarity index 100%
rename from brick_checking.h
rename to kernel/brick_checking.h
diff --git a/brick_locks.h b/kernel/brick_locks.h
similarity index 100%
rename from brick_locks.h
rename to kernel/brick_locks.h
diff --git a/brick_mem.c b/kernel/brick_mem.c
similarity index 100%
rename from brick_mem.c
rename to kernel/brick_mem.c
diff --git a/brick_mem.h b/kernel/brick_mem.h
similarity index 100%
rename from brick_mem.h
rename to kernel/brick_mem.h
diff --git a/brick_say.c b/kernel/brick_say.c
similarity index 100%
rename from brick_say.c
rename to kernel/brick_say.c
diff --git a/brick_say.h b/kernel/brick_say.h
similarity index 100%
rename from brick_say.h
rename to kernel/brick_say.h
diff --git a/lib_limiter.c b/kernel/lib_limiter.c
similarity index 100%
rename from lib_limiter.c
rename to kernel/lib_limiter.c
diff --git a/lib_limiter.h b/kernel/lib_limiter.h
similarity index 100%
rename from lib_limiter.h
rename to kernel/lib_limiter.h
diff --git a/lib_log.c b/kernel/lib_log.c
similarity index 100%
rename from lib_log.c
rename to kernel/lib_log.c
diff --git a/lib_log.h b/kernel/lib_log.h
similarity index 100%
rename from lib_log.h
rename to kernel/lib_log.h
diff --git a/lib_mapfree.c b/kernel/lib_mapfree.c
similarity index 100%
rename from lib_mapfree.c
rename to kernel/lib_mapfree.c
diff --git a/lib_mapfree.h b/kernel/lib_mapfree.h
similarity index 100%
rename from lib_mapfree.h
rename to kernel/lib_mapfree.h
diff --git a/lib_pairing_heap.h b/kernel/lib_pairing_heap.h
similarity index 100%
rename from lib_pairing_heap.h
rename to kernel/lib_pairing_heap.h
diff --git a/lib_queue.h b/kernel/lib_queue.h
similarity index 100%
rename from lib_queue.h
rename to kernel/lib_queue.h
diff --git a/lib_rank.c b/kernel/lib_rank.c
similarity index 100%
rename from lib_rank.c
rename to kernel/lib_rank.c
diff --git a/lib_rank.h b/kernel/lib_rank.h
similarity index 100%
rename from lib_rank.h
rename to kernel/lib_rank.h
diff --git a/lib_timing.c b/kernel/lib_timing.c
similarity index 100%
rename from lib_timing.c
rename to kernel/lib_timing.c
diff --git a/lib_timing.h b/kernel/lib_timing.h
similarity index 100%
rename from lib_timing.h
rename to kernel/lib_timing.h
diff --git a/mars.h b/kernel/mars.h
similarity index 100%
rename from mars.h
rename to kernel/mars.h
diff --git a/mars_aio.c b/kernel/mars_aio.c
similarity index 100%
rename from mars_aio.c
rename to kernel/mars_aio.c
diff --git a/mars_aio.h b/kernel/mars_aio.h
similarity index 100%
rename from mars_aio.h
rename to kernel/mars_aio.h
diff --git a/mars_bio.c b/kernel/mars_bio.c
similarity index 100%
rename from mars_bio.c
rename to kernel/mars_bio.c
diff --git a/mars_bio.h b/kernel/mars_bio.h
similarity index 100%
rename from mars_bio.h
rename to kernel/mars_bio.h
diff --git a/mars_buf.c b/kernel/mars_buf.c
similarity index 100%
rename from mars_buf.c
rename to kernel/mars_buf.c
diff --git a/mars_buf.h b/kernel/mars_buf.h
similarity index 100%
rename from mars_buf.h
rename to kernel/mars_buf.h
diff --git a/mars_check.c b/kernel/mars_check.c
similarity index 100%
rename from mars_check.c
rename to kernel/mars_check.c
diff --git a/mars_check.h b/kernel/mars_check.h
similarity index 100%
rename from mars_check.h
rename to kernel/mars_check.h
diff --git a/mars_client.c b/kernel/mars_client.c
similarity index 100%
rename from mars_client.c
rename to kernel/mars_client.c
diff --git a/mars_client.h b/kernel/mars_client.h
similarity index 100%
rename from mars_client.h
rename to kernel/mars_client.h
diff --git a/mars_copy.c b/kernel/mars_copy.c
similarity index 100%
rename from mars_copy.c
rename to kernel/mars_copy.c
diff --git a/mars_copy.h b/kernel/mars_copy.h
similarity index 100%
rename from mars_copy.h
rename to kernel/mars_copy.h
diff --git a/mars_dummy.c b/kernel/mars_dummy.c
similarity index 100%
rename from mars_dummy.c
rename to kernel/mars_dummy.c
diff --git a/mars_dummy.h b/kernel/mars_dummy.h
similarity index 100%
rename from mars_dummy.h
rename to kernel/mars_dummy.h
diff --git a/mars_generic.c b/kernel/mars_generic.c
similarity index 100%
rename from mars_generic.c
rename to kernel/mars_generic.c
diff --git a/mars_if.c b/kernel/mars_if.c
similarity index 100%
rename from mars_if.c
rename to kernel/mars_if.c
diff --git a/mars_if.h b/kernel/mars_if.h
similarity index 100%
rename from mars_if.h
rename to kernel/mars_if.h
diff --git a/mars_net.c b/kernel/mars_net.c
similarity index 100%
rename from mars_net.c
rename to kernel/mars_net.c
diff --git a/mars_net.h b/kernel/mars_net.h
similarity index 100%
rename from mars_net.h
rename to kernel/mars_net.h
diff --git a/mars_server.c b/kernel/mars_server.c
similarity index 100%
rename from mars_server.c
rename to kernel/mars_server.c
diff --git a/mars_server.h b/kernel/mars_server.h
similarity index 100%
rename from mars_server.h
rename to kernel/mars_server.h
diff --git a/mars_sio.c b/kernel/mars_sio.c
similarity index 100%
rename from mars_sio.c
rename to kernel/mars_sio.c
diff --git a/mars_sio.h b/kernel/mars_sio.h
similarity index 100%
rename from mars_sio.h
rename to kernel/mars_sio.h
diff --git a/mars_trans_logger.c b/kernel/mars_trans_logger.c
similarity index 100%
rename from mars_trans_logger.c
rename to kernel/mars_trans_logger.c
diff --git a/mars_trans_logger.h b/kernel/mars_trans_logger.h
similarity index 100%
rename from mars_trans_logger.h
rename to kernel/mars_trans_logger.h
diff --git a/mars_usebuf.c b/kernel/mars_usebuf.c
similarity index 100%
rename from mars_usebuf.c
rename to kernel/mars_usebuf.c
diff --git a/mars_usebuf.h b/kernel/mars_usebuf.h
similarity index 100%
rename from mars_usebuf.h
rename to kernel/mars_usebuf.h
diff --git a/meta.h b/kernel/meta.h
similarity index 100%
rename from meta.h
rename to kernel/meta.h
diff --git a/sy_old/README b/kernel/sy_old/README
similarity index 100%
rename from sy_old/README
rename to kernel/sy_old/README
diff --git a/sy_old/mars_light.c b/kernel/sy_old/mars_light.c
similarity index 100%
rename from sy_old/mars_light.c
rename to kernel/sy_old/mars_light.c
diff --git a/sy_old/mars_proc.c b/kernel/sy_old/mars_proc.c
similarity index 100%
rename from sy_old/mars_proc.c
rename to kernel/sy_old/mars_proc.c
diff --git a/sy_old/mars_proc.h b/kernel/sy_old/mars_proc.h
similarity index 100%
rename from sy_old/mars_proc.h
rename to kernel/sy_old/mars_proc.h
diff --git a/sy_old/strategy.h b/kernel/sy_old/strategy.h
similarity index 100%
rename from sy_old/strategy.h
rename to kernel/sy_old/strategy.h
diff --git a/sy_old/sy_generic.c b/kernel/sy_old/sy_generic.c
similarity index 100%
rename from sy_old/sy_generic.c
rename to kernel/sy_old/sy_generic.c
diff --git a/sy_old/sy_net.c b/kernel/sy_old/sy_net.c
similarity index 100%
rename from sy_old/sy_net.c
rename to kernel/sy_old/sy_net.c
diff --git a/pre-patches/2.6.32-pre-patch-for-mars.patch b/pre-patches/2.6.32-pre-patch-for-mars.patch
index a00c1fa8..fccfa5ff 100644
--- a/pre-patches/2.6.32-pre-patch-for-mars.patch
+++ b/pre-patches/2.6.32-pre-patch-for-mars.patch
@@ -28,7 +28,7 @@ index 9be0b56..80cd020 100644
  	T10/SCSI Data Integrity Field or the T13/ATA External Path
  	Protection.  If in doubt, say N.
  
-+source block/mars/Kconfig
++source block/mars/kernel/Kconfig
 +
  endif # BLOCK
  
@@ -42,7 +42,7 @@ index ba74ca6..d547b2c 100644
  obj-$(CONFIG_BLOCK_COMPAT)	+= compat_ioctl.o
  obj-$(CONFIG_BLK_DEV_INTEGRITY)	+= blk-integrity.o
 +
-+obj-$(CONFIG_MARS)		+= mars/
++obj-$(CONFIG_MARS)		+= mars/kernel/
 \ No newline at end of file
 diff --git a/fs/aio.c b/fs/aio.c
 index 22a19ad..466a59f 100644
diff --git a/pre-patches/2.6.32-rhel6-openvz b/pre-patches/2.6.32-rhel6-openvz
index e2a0c082..612ae7fe 100644
--- a/pre-patches/2.6.32-rhel6-openvz
+++ b/pre-patches/2.6.32-rhel6-openvz
@@ -5,7 +5,7 @@ diff -urpN source.rhel6//block/Kconfig source/block/Kconfig
  
  	See Documentation/cgroups/blkio-controller.txt for more information.
  
-+source block/mars/Kconfig
++source block/mars/kernel/Kconfig
 +
  endif # BLOCK
  
@@ -18,7 +18,7 @@ diff -urpN source.rhel6//block/Makefile source/block/Makefile
  obj-$(CONFIG_BLOCK_COMPAT)	+= compat_ioctl.o
  obj-$(CONFIG_BLK_DEV_INTEGRITY)	+= blk-integrity.o
 +
-+obj-$(CONFIG_MARS)             += mars/
++obj-$(CONFIG_MARS)             += mars/kernel/
 +
 diff -urpN source.rhel6//fs/aio.c source/fs/aio.c
 --- source.rhel6//fs/aio.c	2012-11-21 12:24:35.721563886 +0100
diff --git a/pre-patches/3.2-pre-patch-for-mars.patch b/pre-patches/3.2-pre-patch-for-mars.patch
index 376ccbbc..d2f20611 100644
--- a/pre-patches/3.2-pre-patch-for-mars.patch
+++ b/pre-patches/3.2-pre-patch-for-mars.patch
@@ -14,7 +14,7 @@ index e97934e..9e9201a 100644
  
  	See Documentation/cgroups/blkio-controller.txt for more information.
  
-+source block/mars/Kconfig
++source block/mars/kernel/Kconfig
 +
  endif # BLOCK
  
@@ -28,7 +28,7 @@ index 514c6e4..97dbbd4 100644
  obj-$(CONFIG_BLOCK_COMPAT)	+= compat_ioctl.o
  obj-$(CONFIG_BLK_DEV_INTEGRITY)	+= blk-integrity.o
 +
-+obj-$(CONFIG_MARS)		+= mars/
++obj-$(CONFIG_MARS)		+= mars/kernel/
 diff --git a/fs/aio.c b/fs/aio.c
 index 3b65ee7..de4ff1f 100644
 --- a/fs/aio.c
diff --git a/pre-patches/debian-squeeze-kernel-38/drivers-block-mars-kpatch-openvz.patch b/pre-patches/debian-squeeze-kernel-38/drivers-block-mars-kpatch-openvz.patch
index 9fc87a73..7732cdd4 100644
--- a/pre-patches/debian-squeeze-kernel-38/drivers-block-mars-kpatch-openvz.patch
+++ b/pre-patches/debian-squeeze-kernel-38/drivers-block-mars-kpatch-openvz.patch
@@ -5,7 +5,7 @@ diff -uri linux-2.6.32.14.orig/block/Kconfig linux-2.6.32.14.new.00/block/Kconfi
  	T10/SCSI Data Integrity Field or the T13/ATA External Path
  	Protection.  If in doubt, say N.
  
-+source block/mars/Kconfig
++source block/mars/kernel/Kconfig
 +
  config BLK_CGROUP
  	bool
@@ -18,7 +18,7 @@ diff -uri linux-2.6.32.14.orig/block/Makefile linux-2.6.32.14.new.00/block/Makef
  obj-$(CONFIG_BLOCK_COMPAT)	+= compat_ioctl.o
  obj-$(CONFIG_BLK_DEV_INTEGRITY)	+= blk-integrity.o
 +
-+obj-$(CONFIG_MARS)		+= mars/
++obj-$(CONFIG_MARS)		+= mars/kernel/
 \ No newline at end of file
 --- linux-2.6.32.14.orig/fs/aio.c	2010-05-31 14:09:40.000000000 +0200
 +++ linux-2.6.32.14.new.00/fs/aio.c	2011-01-26 16:02:44.000000000 +0100
diff --git a/pre-patches/debian-squeeze-kernel-38/drivers-block-mars-kpatch.patch b/pre-patches/debian-squeeze-kernel-38/drivers-block-mars-kpatch.patch
index 636cfa8e..86a41a1b 100644
--- a/pre-patches/debian-squeeze-kernel-38/drivers-block-mars-kpatch.patch
+++ b/pre-patches/debian-squeeze-kernel-38/drivers-block-mars-kpatch.patch
@@ -5,7 +5,7 @@ diff -uri linux-2.6.32.14.orig/block/Kconfig linux-2.6.32.14.new.00/block/Kconfi
  	T10/SCSI Data Integrity Field or the T13/ATA External Path
  	Protection.  If in doubt, say N.
  
-+source block/mars/Kconfig
++source block/mars/kernel/Kconfig
 +
  endif # BLOCK
  
@@ -18,7 +18,7 @@ diff -uri linux-2.6.32.14.orig/block/Makefile linux-2.6.32.14.new.00/block/Makef
  obj-$(CONFIG_BLOCK_COMPAT)	+= compat_ioctl.o
  obj-$(CONFIG_BLK_DEV_INTEGRITY)	+= blk-integrity.o
 +
-+obj-$(CONFIG_MARS)		+= mars/
++obj-$(CONFIG_MARS)		+= mars/kernel/
 \ No newline at end of file
 --- linux-2.6.32.14.orig/fs/aio.c	2010-05-31 14:09:40.000000000 +0200
 +++ linux-2.6.32.14.new.00/fs/aio.c	2011-01-26 16:02:44.000000000 +0100