diff --git a/src/kernel/Makefile b/src/kernel/Makefile
index 4137f84..3cb20f8 100644
--- a/src/kernel/Makefile
+++ b/src/kernel/Makefile
@@ -13,15 +13,17 @@
 			switch_table.o \
 			scan_codes.o \
 			kheap.o \
-			alloc.o
+			alloc.o \
+			vfs.o
+
+JAYROOT = ../../
 CFLAGS = -nostdlib -nostdinc -fno-builtin -fno-stack-protector -ffreestanding \
-			-m32 -O2 -g -Wall -Wno-unused-function -Wno-unused-variable
+			-m32 -O2 -g -Wall -Wno-unused-function -Wno-unused-variable \
+			-I$(JAYROOT)/include
 LDFLAGS = -Tlink.ld -melf_i386
 ASMFLAGS = -felf
 QEMUFLAGS = -d cpu_reset
 
-JAYROOT = ../../
-
 kernel.elf: $(SOURCES)
 	ld $(LDFLAGS) -o $@ $^
 
diff --git a/src/kernel/alloc.c b/src/kernel/alloc.c
index bcd58ae..c6e092c 100644
--- a/src/kernel/alloc.c
+++ b/src/kernel/alloc.c
@@ -254,6 +254,8 @@
 		base->size = full_size;
 		base->magic = HEAP_MAGIC;
 		base->allocated = true;
+
+		return mem;
 	}
 	else
 	{
diff --git a/src/kernel/vfs.c b/src/kernel/vfs.c
new file mode 100644
index 0000000..59ccaf5
--- /dev/null
+++ b/src/kernel/vfs.c
@@ -0,0 +1,49 @@
+#include "vfs.h"
+
+uint fs_read(struct fs_node *node, size_t offset, size_t size, uchar *buffer)
+{
+	if (!node || !node->vtable || !node->vtable->read)
+		return 0;
+
+	return node->vtable->read(node, offset, size, buffer);
+}
+
+uint fs_write(struct fs_node *node, size_t offset, size_t size, uchar *buffer)
+{
+	if (!node || !node->vtable || !node->vtable->write)
+		return 0;
+
+	return node->vtable->write(node, offset, size, buffer);
+}
+
+void fs_open(struct fs_node *node)
+{
+	if (!node || !node->vtable || !node->vtable->open)
+		return;
+
+	node->vtable->open(node);
+}
+
+void fs_close(struct fs_node *node)
+{
+	if (!node || !node->vtable || !node->vtable->close)
+		return;
+
+	node->vtable->close(node);
+}
+
+struct fs_dirent *fs_readdir(struct fs_node *node, uint index)
+{
+	if (!node || !node->vtable || !node->vtable->readdir || (node->flags & 7) != FS_DIRECTORY)
+		return NULL;
+
+	return node->vtable->readdir(node, index);
+}
+
+struct fs_node *fs_finddir(struct fs_node *node, char *name)
+{
+	if (!node || !node->vtable || !node->vtable->finddir || (node->flags & 7) != FS_DIRECTORY)
+		return NULL;
+
+	return node->vtable->finddir(node, name);
+}
diff --git a/src/kernel/vfs.h b/src/kernel/vfs.h
new file mode 100644
index 0000000..1c62a80
--- /dev/null
+++ b/src/kernel/vfs.h
@@ -0,0 +1,68 @@
+#pragma once
+
+#include "kint.h"
+
+struct fs_vtable;
+
+struct fs_node
+{
+	char name[128]; /* file name */
+	uint inode;     /* identifier */
+	uint flags;     /* type of node */
+	uint mask;      /* permissions */
+	uint gid;       /* group id */
+	uint uid;       /* user id */
+	size_t size;    /* size in bytes */
+	uint dri_res;   /* reserved for driver */
+
+	struct fs_vtable *vtable;
+
+	struct fs_node *mount; /* used for mounts */
+};
+
+struct fs_dirent
+{
+	char name[128];
+	uint inode;
+};
+
+typedef uint (* fs_read_t)(struct fs_node *node, size_t offset, size_t size, uchar *buffer);
+typedef uint (* fs_write_t)(struct fs_node *node, size_t offset, size_t size, uchar *buffer);
+typedef void (* fs_open_t)(struct fs_node *node);
+typedef void (* fs_close_t)(struct fs_node *node);
+
+typedef struct fs_dirent *(* fs_readdir_t)(struct fs_node *node, uint index);
+typedef struct fs_node *(* fs_finddir_t)(struct fs_node *node, char *name);
+
+struct fs_vtable
+{
+	fs_read_t read;
+	fs_write_t write;
+	fs_open_t open;
+	fs_close_t close;
+	fs_readdir_t readdir;
+	fs_finddir_t finddir;
+};
+
+enum fs_flags
+{
+	FS_FILE = 1,
+	FS_DIRECTORY,
+	FS_CHARDEVICE,
+	FS_BLOCKDEVICE,
+	FS_PIPE,
+	FS_SYMLINK,
+	
+	FS_MOUNT = 8,   /* Can be or'd with others */
+};
+
+/* Not to be confused normal open, close, etc functions, these operate
+ * on the VFS directly */
+
+uint fs_read(struct fs_node *node, size_t offset, size_t size, uchar *buffer);
+uint fs_write(struct fs_node *node, size_t offset, size_t size, uchar *buffer);
+void fs_open(struct fs_node *node);
+void fs_close(struct fs_node *node);
+
+struct fs_dirent *fs_readdir(struct fs_node *node, uint index);
+struct fs_node *fs_finddir(struct fs_node *node, char *name);
