diff --git a/cmd/docgen/docgen.lua b/cmd/docgen/docgen.lua
index e3d2b5fd..5c7d1558 100644
--- a/cmd/docgen/docgen.lua
+++ b/cmd/docgen/docgen.lua
@@ -19,8 +19,6 @@ for _, fname in ipairs(files) do
 	local docPiece = {}
 	local lines = {}
 	local lineno = 0
-	local tocPos
-	local tocSearch = false
 	for line in f:lines() do
 		lineno = lineno + 1
 		lines[lineno] = line
@@ -137,11 +135,12 @@ for iface, dps in pairs(pieces) do
 		sig = sig .. ')'
 
 		if tocPos then
-			local pos = f:seek()
 			f:seek('set', tocPos)
-			f:write(string.format('|%s|%s|\n', func, string.format('%s(%s)', func, params), docs.description[1]))
-			tocPos = f:seek()
-			f:seek('set', pos)
+			local contents = f:read '*a'
+			f:seek('set', tocPos)
+			local tocLine = string.format('|%s|%s|\n', func, string.format('%s(%s)', func, params), docs.description[1])
+			f:write(tocLine .. contents)
+			f:seek 'end'
 		end
 
 		f:write(string.format('
\n', func))
diff --git a/docs/api/hilbish/hilbish.runner.md b/docs/api/hilbish/hilbish.runner.md
index 303996d1..a88985fd 100644
--- a/docs/api/hilbish/hilbish.runner.md
+++ b/docs/api/hilbish/hilbish.runner.md
@@ -57,13 +57,37 @@ end)
 |
setMode(cb)|This is the same as the `hilbish.runnerMode` function.|
 |
lua(cmd)|Evaluates `cmd` as Lua input. This is the same as using `dofile`|
 |
sh(cmd)|Runs a command in Hilbish's shell script interpreter.|
-|
getCurrent()|Returns the current runner by name.|
-|
setCurrent(name)|Sets the current interactive/command line runner mode.|
-|
add(name, runner)|Adds a runner to the table of available runners. If runner is a table,|
-|
get(name)|Get a runner by name.|
-|
set(name, runner)|Sets a runner by name. The runner table must have the run function in it.|
 |
exec(cmd, runnerName)|Executes cmd with a runner. If runnerName isn't passed, it uses|
-d)
+|
set(name, runner)|Sets a runner by name. The runner table must have the run function in it.|
+|
get(name)|Get a runner by name.|
+|
add(name, runner)|Adds a runner to the table of available runners. If runner is a table,|
+|
setCurrent(name)|Sets the current interactive/command line runner mode.|
+|
getCurrent()|Returns the current runner by name.|
+
+
+
+
+hilbish.runner.setMode(cb)
+
+	
+
+
+
+This is the same as the `hilbish.runnerMode` function.  
+It takes a callback, which will be used to execute all interactive input.  
+In normal cases, neither callbacks should be overrided by the user,  
+as the higher level functions listed below this will handle it.  
+
+#### Parameters
+`function` **`cb`**  
+
+
+
+
+
+
+
+hilbish.runner.lua(cmd)