diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..a08a621
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,8 @@
+{
+	"Lua.diagnostics.disable": [
+		"trailing-space",
+		"undefined-global",
+		"lowercase-global",
+		"cast-local-type"
+	]
+}
\ No newline at end of file
diff --git a/worldeditadditions_commands/aliases.lua b/worldeditadditions_commands/aliases.lua
index 109f76f..dd50c49 100644
--- a/worldeditadditions_commands/aliases.lua
+++ b/worldeditadditions_commands/aliases.lua
@@ -21,7 +21,7 @@ local worldmt_settings = Settings(minetest.get_worldpath().."/world.mt")
 local should_override = worldmt_settings:get_bool("worldeditadditions_override_commands", false)
 if should_override then
 	minetest.log("info", "[WorldEditAdditions] Enabling override aliases")
-	worldeditadditions_core.register_alias("copy", "copy+", true)
-	worldeditadditions_core.register_alias("move", "move+", true)
-	worldeditadditions_core.register_alias("replace", "replacemix", true)
+	wea_c.register_alias("copy", "copy+", true)
+	wea_c.register_alias("move", "move+", true)
+	wea_c.register_alias("replace", "replacemix", true)
 end
diff --git a/worldeditadditions_commands/commands/overlay.lua b/worldeditadditions_commands/commands/overlay.lua
index 1763f42..e4b0286 100644
--- a/worldeditadditions_commands/commands/overlay.lua
+++ b/worldeditadditions_commands/commands/overlay.lua
@@ -1,3 +1,7 @@
+local wea_c = worldeditadditions_core
+local wea = worldeditadditions
+local Vector3 = wea_c.Vector3
+
 --  ██████  ██    ██ ███████ ██████  ██       █████  ██    ██
 -- ██    ██ ██    ██ ██      ██   ██ ██      ██   ██  ██  ██
 -- ██    ██ ██    ██ █████   ██████  ██      ███████   ████
@@ -9,8 +13,8 @@ worldeditadditions_core.register_command("overlay", {
 	privs = { worldedit = true },
 	require_pos = 2,
 	parse = function(params_text)
-		local success, node_list = worldeditadditions.parse.weighted_nodes(
-			worldeditadditions.split_shell(params_text)
+		local success, node_list = wea_c.parse.weighted_nodes(
+			wea_c.split_shell(params_text)
 		)
 		return success, node_list
 	end,
@@ -20,11 +24,16 @@ worldeditadditions_core.register_command("overlay", {
 		return (pos2.x - pos1.x) * (pos2.y - pos1.y)
 	end,
 	func = function(name, node_list)
-		local start_time = worldeditadditions.get_ms_time()
-		local changes = worldeditadditions.overlay(worldedit.pos1[name], worldedit.pos2[name], node_list)
-		local time_taken = worldeditadditions.get_ms_time() - start_time
+		local start_time = wea_c.get_ms_time()
+		local pos1, pos2 = Vector3.sort(worldedit.pos1[name], worldedit.pos2[name])
+
+		local changes = wea.overlay(
+			pos1, pos2,
+			node_list
+		)
+		local time_taken = wea_c.get_ms_time() - start_time
 		
-		minetest.log("action", name .. " used //overlay at " .. worldeditadditions.vector.tostring(worldedit.pos1[name]) .. ", replacing " .. changes.updated .. " nodes and skipping " .. changes.skipped_columns .. " columns in " .. time_taken .. "s")
-		return true, changes.updated .. " nodes replaced and " .. changes.skipped_columns .. " columns skipped in " .. worldeditadditions.format.human_time(time_taken)
+		minetest.log("action", name .. " used //overlay at " .. pos1 .. " - "..pos2..", replacing " .. changes.updated .. " nodes and skipping " .. changes.skipped_columns .. " columns in " .. time_taken .. "s")
+		return true, changes.updated .. " nodes replaced and " .. changes.skipped_columns .. " columns skipped in " .. wea_c.format.human_time(time_taken)
 	end
 })
diff --git a/worldeditadditions_commands/commands/replacemix.lua b/worldeditadditions_commands/commands/replacemix.lua
index 07a5d81..747eb0b 100644
--- a/worldeditadditions_commands/commands/replacemix.lua
+++ b/worldeditadditions_commands/commands/replacemix.lua
@@ -1,11 +1,13 @@
 local wea = worldeditadditions
+local wea_c = worldeditadditions_core
+local Vector3 = wea_c.Vector3
 
 -- ██████  ███████ ██████  ██       █████   ██████ ███████ ███    ███ ██ ██   ██
 -- ██   ██ ██      ██   ██ ██      ██   ██ ██      ██      ████  ████ ██  ██ ██
 -- ██████  █████   ██████  ██      ███████ ██      █████   ██ ████ ██ ██   ███
 -- ██   ██ ██      ██      ██      ██   ██ ██      ██      ██  ██  ██ ██  ██ ██
 -- ██   ██ ███████ ██      ███████ ██   ██  ██████ ███████ ██      ██ ██ ██   ██
-worldeditadditions_core.register_command("replacemix", {
+wea_c.register_command("replacemix", {
 	params = "<target_node> [<chance>] <replace_node_a> [<chance_a>] [<replace_node_b> [<chance_b>]] [<replace_node_N> [<chance_N>]] ...",
 	description = "Replaces target_node with a mix of other nodes. Functions simmilarly to //mix. <chance> is optional and the chance to replace the target node at all. replace_node_a is the node to replace target_node with. If multiple nodes are specified in a space separated list, then when replacing an instance of target_node one is randomly chosen from the list. Just like with //mix, if a positive integer is present after a replace_node, that adds a weighting to that particular node making it more common.",
 	privs = { worldedit = true },
@@ -15,7 +17,7 @@ worldeditadditions_core.register_command("replacemix", {
 			return false, "Error: No arguments specified"
 		end
 		
-		local parts = wea.split_shell(params_text)
+		local parts = wea_c.split_shell(params_text)
 		
 		local target_node = nil
 		local target_node_chance = 1
@@ -30,16 +32,16 @@ worldeditadditions_core.register_command("replacemix", {
 					return false, "Error: Invalid target_node name"
 				end
 				mode = "target_chance"
-			elseif mode == "target_chance" and wea.parse.chance(part) then
-				target_node_chance = wea.parse.chance(part)
+			elseif mode == "target_chance" and wea_c.parse.chance(part) then
+				target_node_chance = wea_c.parse.chance(part)
 				mode = "replace_node"
-			elseif (mode == "target_chance" and not wea.parse.chance(part, "weight")) or mode == "replace_node" then
+			elseif (mode == "target_chance" and not wea_c.parse.chance(part, "weight")) or mode == "replace_node" then
 				mode = "replace_node"
-				if wea.parse.chance(part, "weight") then
+				if wea_c.parse.chance(part, "weight") then
 					if not last_node_name then
 						return false, "Error: No previous node name was found (this is a probably a bug)."
 					end
-					replace_nodes[last_node_name] = math.floor(wea.parse.chance(part, "weight"))
+					replace_nodes[last_node_name] = math.floor(wea_c.parse.chance(part, "weight"))
 				else
 					if last_node_name and not replace_nodes[last_node_name] then
 						replace_nodes[last_node_name] = 1
@@ -67,9 +69,10 @@ worldeditadditions_core.register_command("replacemix", {
 		return worldedit.volume(worldedit.pos1[name], worldedit.pos2[name])
 	end,
 	func = function(name, target_node, target_node_chance, replace_nodes)
-		local start_time = worldeditadditions.get_ms_time()
-		
-		local success, changed, candidates, distribution = worldeditadditions.replacemix(
+		local start_time = wea_c.get_ms_time()
+		local pos1, pos2 = Vector3.sort(worldedit.pos1[name], worldedit.pos2[name])
+
+		local success, changed, candidates, distribution = wea.replacemix(
 			worldedit.pos1[name], worldedit.pos2[name],
 			target_node,
 			target_node_chance,
@@ -79,19 +82,19 @@ worldeditadditions_core.register_command("replacemix", {
 			return success, changed
 		end
 		
-		local nodes_total = worldedit.volume(worldedit.pos1[name], worldedit.pos2[name])
-		local percentage_replaced = worldeditadditions.round((changed / candidates)*100, 2)
-		local distribution_table = worldeditadditions.format.node_distribution(
+		local nodes_total = worldedit.volume(pos1, pos2)
+		local percentage_replaced = wea_c.round((changed / candidates)*100, 2)
+		local distribution_table = wea_c.format.node_distribution(
 			distribution,
 			changed,
 			true -- Add a grand total to the bottom
 		)
 		
-		local time_taken = worldeditadditions.get_ms_time() - start_time
+		local time_taken = wea_c.get_ms_time() - start_time
 		
 		
-		minetest.log("action", name .. " used //replacemix at "..worldeditadditions.vector.tostring(worldedit.pos1[name]).." - "..worldeditadditions.vector.tostring(worldedit.pos2[name])..", replacing " .. changed.." nodes (out of "..nodes_total.." nodes) in "..time_taken.."s")
+		minetest.log("action", name .. " used //replacemix at "..pos1.." - "..pos2..", replacing " .. changed.." nodes (out of "..nodes_total.." nodes) in "..time_taken.."s")
 		
-		return true, distribution_table..changed.." out of "..candidates.." (~"..percentage_replaced.."%) candidates replaced in "..worldeditadditions.format.human_time(time_taken)
+		return true, distribution_table..changed.." out of "..candidates.." (~"..percentage_replaced.."%) candidates replaced in "..wea_c.format.human_time(time_taken)
 	end
 })
diff --git a/worldeditadditions_commands/commands/scale.lua b/worldeditadditions_commands/commands/scale.lua
index bbc9000..1b7b194 100644
--- a/worldeditadditions_commands/commands/scale.lua
+++ b/worldeditadditions_commands/commands/scale.lua
@@ -1,8 +1,12 @@
+local wea = worldeditadditions
+local wea_c = worldeditadditions_core
+local Vector3 = wea_c.Vector3
+
 local function parse_scale_component(val)
 	local result = tonumber(val)
 	if result then return true, result end
-	if string.find(val, "/") then
-		local parts = worldeditadditions.split(val, "/", true)
+	if string.find(val, "/")  then
+		local parts = wea_c.split(val, "/", true)
 		local a = tonumber(parts[1])
 		local b = tonumber(parts[2])
 		if not b then return false, "Invalid number after the forward slash in scale component." end
@@ -22,7 +26,7 @@ end
 -- ███████ ██      ███████ ██      █████
 --      ██ ██      ██   ██ ██      ██
 -- ███████  ██████ ██   ██ ███████ ███████
-worldeditadditions_core.register_command("scale", {
+wea_c.register_command("scale", {
 	params = "<axis> <scale_factor> | <factor_x> [<factor_y> <factor_z> [<anchor_x> <anchor_y> <anchor_z>]]",
 	description = "Combined scale up / down. Takes either an axis name + a scale factor (e.g. y 3 or -z 2; negative values swap the anchor point for the scale operation), or 3 scale factor values for x, y, and z respectively. In the latter mode, a set of anchors can also be specified, which indicate which size the scale operation should be anchored to.",
 	privs = { worldedit = true },
@@ -30,10 +34,10 @@ worldeditadditions_core.register_command("scale", {
 	parse = function(params_text)
 		if not params_text then params_text = "" end
 		
-		local parts = worldeditadditions.split_shell(params_text)
+		local parts = wea_c.split_shell(params_text)
 		
-		local scale = vector.new(1, 1, 1)
-		local anchor = vector.new(1, 1, 1)
+		local scale = Vector3.new(1, 1, 1)
+		local anchor = Vector3.new(1, 1, 1)
 		
 		if #parts == 2 then
 			if not (parts[1] == "x" or parts[1] == "y" or parts[1] == "z"
@@ -48,7 +52,7 @@ worldeditadditions_core.register_command("scale", {
 				axis = axis:sub(2, 2)
 				anchor[axis] = -1
 			end
-			
+			-- BUG: POTENTIAL BUG HERE
 			scale[axis] = factor
 		elseif #parts >= 3 then
 			local success, val = parse_scale_component(parts[1])
@@ -102,14 +106,13 @@ worldeditadditions_core.register_command("scale", {
 		return volume * factor
 	end,
 	func = function(name, scale, anchor)
-		-- print("initial scale: "..worldeditadditions.vector.tostring(scale)..", anchor: "..worldeditadditions.vector.tostring(anchor))
 		
+		local start_time = wea_c.get_ms_time()
 		
-		local start_time = worldeditadditions.get_ms_time()
+		local pos1, pos2 = Vector3.sort(worldedit.pos1[name], worldedit.pos2[name])
 		
-		local success, stats = worldeditadditions.scale(
-			worldedit.pos1[name],
-			worldedit.pos2[name],
+		local success, stats = wea.scale(
+			pos1, pos2,
 			scale, anchor
 		)
 		if not success then return success, stats end
@@ -118,10 +121,10 @@ worldeditadditions_core.register_command("scale", {
 		worldedit.pos2[name] = stats.pos2
 		worldedit.marker_update(name)
 		
-		local time_taken = worldeditadditions.get_ms_time() - start_time
+		local time_taken = wea_c.get_ms_time() - start_time
 		
 		
-		minetest.log("action", name.." used //scale at "..worldeditadditions.vector.tostring(worldedit.pos1[name]).." - "..worldeditadditions.vector.tostring(worldedit.pos2[name])..", updating "..stats.updated.." nodes in "..time_taken.."s")
-		return true, stats.updated.." nodes updated in " .. worldeditadditions.format.human_time(time_taken)
+		minetest.log("action", name.." used //scale at "..pos1.." - "..pos2..", updating "..stats.updated.." nodes in "..time_taken.."s")
+		return true, stats.updated.." nodes updated in " .. wea_c.format.human_time(time_taken)
 	end
 })
diff --git a/worldeditadditions_commands/commands/sculpt.lua b/worldeditadditions_commands/commands/sculpt.lua
index 00e4289..f84ac80 100644
--- a/worldeditadditions_commands/commands/sculpt.lua
+++ b/worldeditadditions_commands/commands/sculpt.lua
@@ -1,6 +1,7 @@
-local we_c = worldeditadditions_commands
+local wea_c = worldeditadditions_core
 local wea = worldeditadditions
-local Vector3 = wea.Vector3
+local wea_cmd = worldeditadditions_commands
+local Vector3 = wea_c.Vector3
 
 -- ███████  ██████ ██    ██ ██      ██████  ████████
 -- ██      ██      ██    ██ ██      ██   ██    ██
@@ -17,7 +18,7 @@ worldeditadditions_core.register_command("sculpt", {
 			params_text = "circle_soft1"
 		end
 		
-		local parts = wea.split_shell(params_text)
+		local parts = wea_c.split_shell(params_text)
 		
 		local brush_name = "circle_soft1"
 		local height = 5
@@ -53,25 +54,25 @@ worldeditadditions_core.register_command("sculpt", {
 		-- This solution allows for brushes with negative values
 		-- it also allows for brushes that 'break the rules' and have values
 		-- that exceed the -1 to 1 range
-		local brush_min = wea.min(brush)
-		local brush_max = wea.max(brush)
+		local brush_min = wea_c.min(brush)
+		local brush_max = wea_c.max(brush)
 		local range_nodes = (brush_max * height) - (brush_min * height)
 		
 		return size_actual.x * size_actual.y * range_nodes
 	end,
 	func = function(name, brush_name, height, brush_size)
-		local start_time = wea.get_ms_time()
+		local start_time = wea_c.get_ms_time()
 		
-		local pos1 = wea.Vector3.clone(worldedit.pos1[name])
+		local pos1 = wea_c.Vector3.clone(worldedit.pos1[name])
 		local success, stats = wea.sculpt.apply(
 			pos1,
 			brush_name, height, brush_size
 		)
 		if not success then return success, stats.added end
 		
-		local time_taken = wea.get_ms_time() - start_time
+		local time_taken = wea_c.get_ms_time() - start_time
 		
 		minetest.log("action", name .. " used //sculpt at "..pos1..", adding " .. stats.added.." nodes and removing "..stats.removed.." nodes in "..time_taken.."s")
-		return true, stats.added.." nodes added and "..stats.removed.." removed in "..wea.format.human_time(time_taken)
+		return true, stats.added.." nodes added and "..stats.removed.." removed in "..wea_c.format.human_time(time_taken)
 	end
 })
diff --git a/worldeditadditions_commands/commands/spiral2.lua b/worldeditadditions_commands/commands/spiral2.lua
index 9bcf40f..e663752 100644
--- a/worldeditadditions_commands/commands/spiral2.lua
+++ b/worldeditadditions_commands/commands/spiral2.lua
@@ -1,18 +1,18 @@
 
-local wea = worldeditadditions
-local Vector3 = wea.Vector3
+local wea_c = worldeditadditions_core
+local Vector3 = wea_c.Vector3
 
-worldeditadditions_core.register_command("spiral2", {
+wea_c.register_command("spiral2", {
 	params = "[circle|square] [<replace_node=dirt> [<interval=3> [<acceleration=0>] ] ]",
 	description = "Generates a spiral that fills the defined region using the specified replace node. The spiral is either square (default) or circular in shape. The interval specifies the distance between the walls of the spiral, and the acceleration specifies how quickly this value should increase.",
 	privs = { worldedit = true },
 	require_pos = 2,
 	parse = function(params_text)
 		if not params_text then params_text = "" end
-		params_text = wea.trim(params_text)
+		params_text = wea_c.trim(params_text)
 		if params_text == "" then return true, "square", "dirt", 3, 0 end
 		
-		local parts = wea.split_shell(params_text)
+		local parts = wea_c.split_shell(params_text)
 		
 		local mode = "square"
 		local target_node = "dirt"
@@ -59,30 +59,30 @@ worldeditadditions_core.register_command("spiral2", {
 		return worldedit.volume(worldedit.pos1[name], worldedit.pos2[name])
 	end,
 	func = function(name, mode, target_node, interval, acceleration)
-		local start_time = wea.get_ms_time()
+		local start_time = wea_c.get_ms_time()
 		
 		local pos1, pos2 = Vector3.sort(worldedit.pos1[name], worldedit.pos2[name])
 		
 		local success, count
 		
 		if mode == "circle" then
-			success, count = wea.spiral_circle(
+			success, count = worldeditadditions.spiral_circle(
 				pos1, pos2,
 				target_node,
 				interval, acceleration
 			)
 			if not success then return success, count end
 		else
-			success, count = wea.spiral_square(
+			success, count = worldeditadditions.spiral_square(
 				pos1, pos2,
 				target_node,
 				interval, acceleration
 			)
 			if not success then return success, count end
 		end
-		local time_taken = wea.get_ms_time() - start_time
+		local time_taken = wea_c.get_ms_time() - start_time
 		
 		minetest.log("action", name .. " used //spiral at "..pos1.." - "..pos2..", adding " .. count .. " nodes in " .. time_taken .. "s")
-		return true, count .. " nodes replaced in " .. wea.format.human_time(time_taken)
+		return true, count .. " nodes replaced in " .. wea_c.format.human_time(time_taken)
 	end
 })
diff --git a/worldeditadditions_commands/commands/torus.lua b/worldeditadditions_commands/commands/torus.lua
index 37fa2c3..07da02b 100644
--- a/worldeditadditions_commands/commands/torus.lua
+++ b/worldeditadditions_commands/commands/torus.lua
@@ -1,10 +1,14 @@
+local wea_c = worldeditadditions_core
+local Vector3 = wea_c.Vector3
+
+
 -- ████████  ██████  ██████  ██    ██ ███████
 --    ██    ██    ██ ██   ██ ██    ██ ██
 --    ██    ██    ██ ██████  ██    ██ ███████
 --    ██    ██    ██ ██   ██ ██    ██      ██
 --    ██     ██████  ██   ██  ██████  ███████
 local function parse_params_torus(params_text)
-	local parts = worldeditadditions.split_shell(params_text)
+	local parts = wea_c.split_shell(params_text)
 	
 	if #parts < 1 then
 		return false, "Error: No replace_node specified."
@@ -59,24 +63,25 @@ worldeditadditions_core.register_command("torus", {
 	require_pos = 1,
 	parse = function(params_text)
 		local values = {parse_params_torus(params_text)}
-		return worldeditadditions.table.unpack(values)
+		return wea_c.table.unpack(values)
 	end,
 	nodes_needed = function(name, target_node, major_radius, minor_radius)
 		return math.ceil(2 * math.pi*math.pi * major_radius * minor_radius*minor_radius)
 	end,
 	func = function(name, target_node, major_radius, minor_radius, axes, hollow)
-		local start_time = worldeditadditions.get_ms_time()
+		local start_time = wea_c.get_ms_time()
+		local pos1 = Vector3.clone(worldedit.pos1[name])
 		local replaced = worldeditadditions.torus(
-			worldedit.pos1[name],
+			pos1,
 			major_radius, minor_radius,
 			target_node,
 			axes,
 			hollow
 		)
-		local time_taken = worldeditadditions.get_ms_time() - start_time
+		local time_taken = wea_c.get_ms_time() - start_time
 		
-		minetest.log("action", name .. " used //torus at " .. worldeditadditions.vector.tostring(worldedit.pos1[name]) .. ", replacing " .. replaced .. " nodes in " .. time_taken .. "s")
-		return true, replaced .. " nodes replaced in " .. worldeditadditions.format.human_time(time_taken)
+		minetest.log("action", name .. " used //torus at " .. pos1 .. ", replacing " .. replaced .. " nodes in " .. time_taken .. "s")
+		return true, replaced .. " nodes replaced in " .. wea_c.format.human_time(time_taken)
 	end
 })
 
diff --git a/worldeditadditions_commands/commands/walls.lua b/worldeditadditions_commands/commands/walls.lua
index aa6b694..51da705 100644
--- a/worldeditadditions_commands/commands/walls.lua
+++ b/worldeditadditions_commands/commands/walls.lua
@@ -1,3 +1,6 @@
+local wea_c = worldeditadditions_core
+local Vector3 = wea_c.Vector3
+
 -- ██     ██  █████  ██      ██      ███████
 -- ██     ██ ██   ██ ██      ██      ██
 -- ██  █  ██ ███████ ██      ██      ███████
@@ -10,7 +13,7 @@ worldeditadditions_core.register_command("walls", {
 	require_pos = 2,
 	parse = function(params_text)
 		if not params_text or params_text == "" then params_text = "dirt" end
-		local parts = worldeditadditions.split_shell(params_text)
+		local parts = wea_c.split_shell(params_text)
 		
 		local target_node
 		local thickness = 1
@@ -42,14 +45,16 @@ worldeditadditions_core.register_command("walls", {
 		return worldedit.volume(pos1, pos2) - worldedit.volume(pos1, pos3)
 	end,
 	func = function(name, target_node, thickness)
-		local start_time = worldeditadditions.get_ms_time()
-		local success, replaced = worldeditadditions.walls(
-			worldedit.pos1[name], worldedit.pos2[name],
+		local start_time = wea_c.get_ms_time()
+		local pos1, pos2 = Vector3.sort(worldedit.pos1[name], worldedit.pos2[name])
+		
+		local success, replaced = wea_c.walls(
+			pos1, pos2,
 			target_node, thickness
 		)
-		local time_taken = worldeditadditions.get_ms_time() - start_time
+		local time_taken = wea_c.get_ms_time() - start_time
 		
-		minetest.log("action", name .. " used //walls from "..worldeditadditions.vector.tostring(worldedit.pos1[name]).." to "..worldeditadditions.vector.tostring(worldedit.pos1[name])..", replacing " .. replaced .. " nodes in " .. time_taken .. "s")
-		return true, replaced .. " nodes replaced in " .. worldeditadditions.format.human_time(time_taken)
+		minetest.log("action", name .. " used //walls from "..pos1.." to "..pos2..", replacing " .. replaced .. " nodes in " .. time_taken .. "s")
+		return true, replaced .. " nodes replaced in " .. wea_c.format.human_time(time_taken)
 	end
 })
diff --git a/worldeditadditions_commands/doc/init.lua b/worldeditadditions_commands/doc/init.lua
index f6b9f0d..b30caf7 100644
--- a/worldeditadditions_commands/doc/init.lua
+++ b/worldeditadditions_commands/doc/init.lua
@@ -13,6 +13,7 @@
 -- Long-form article descriptions: Chat-Command-Reference.md
 -- Short descriptions: Undecided, but maybe from the registered command definition?
 
-worldeditadditions.doc = {}
+worldeditadditions.doc = {
+	parse_reference = dofile(worldeditadditions_commands.modpath.."/doc/parse_reference.lua")
+}
 
-dofile(worldeditadditions_commands.modpath.."/doc/parse_reference.lua")
diff --git a/worldeditadditions_commands/doc/parse_reference.lua b/worldeditadditions_commands/doc/parse_reference.lua
index 3dea8e1..9943f78 100644
--- a/worldeditadditions_commands/doc/parse_reference.lua
+++ b/worldeditadditions_commands/doc/parse_reference.lua
@@ -1,8 +1,8 @@
-
+local wea_c = worldeditadditions_core
 
 local function get_reference()
 	local lines = {}
-	for line in io.lines(worldeditadditions_commands.modpath.."/Chat-Command-Reference.md") do
+	for line in io.lines(wea_c.modpath.."/Chat-Command-Reference.md") do
 		table.insert(lines, line)
 	end
 	return lines
@@ -13,7 +13,7 @@ local function group_by_heading(lines, max_level)
 	local acc = {}
 	
 	for i,line in ipairs(lines) do
-		if worldeditadditions.str_starts(line, "#") then
+		if wea_c.str_starts(line, "#") then
 			local _, _, heading, headingtext = line:find("(#+)%s*(.*)")
 			if #heading <= max_level then
 				table.insert(groups, {
@@ -30,9 +30,9 @@ local function group_by_heading(lines, max_level)
 	return groups
 end
 
-function worldeditadditions.doc.parse_reference()
+local function parse_reference()
 	local lines = get_reference()
-	local headings = worldeditadditions.table.filter(
+	local headings = wea_c.table.filter(
 		group_by_heading(lines, 2),
 		function(item, i) return item.level ~= 2 end
 	)
@@ -41,5 +41,4 @@ function worldeditadditions.doc.parse_reference()
 	end
 end
 
-
-worldeditadditions.doc.parse_reference()
+return parse_reference
diff --git a/worldeditadditions_commands/init.lua b/worldeditadditions_commands/init.lua
index 22f17d1..6a2278d 100644
--- a/worldeditadditions_commands/init.lua
+++ b/worldeditadditions_commands/init.lua
@@ -6,63 +6,57 @@
 -- @author Starbeamrainbowlabs
 
 worldeditadditions_commands = {}
-local we_c = worldeditadditions_commands
+local wea_cmd = worldeditadditions_commands
 
-we_c.modpath = minetest.get_modpath("worldeditadditions_commands")
+wea_cmd.modpath = minetest.get_modpath("worldeditadditions_commands")
 
-dofile(we_c.modpath.."/player_notify_suppress.lua")
+dofile(wea_cmd.modpath.."/player_notify_suppress.lua")
 
 
-
--- We no longer need our own implementation of safe_region thanks to @sfan5's
--- suggestion in issue #5 - yay!
--- we_c.safe_region, we_c.check_region, we_c.reset_pending
---	= dofile(we_c.modpath.."/safe.lua")
-
-dofile(we_c.modpath.."/commands/convolve.lua")
-dofile(we_c.modpath.."/commands/ellipsoid.lua")
-dofile(we_c.modpath.."/commands/ellipsoid2.lua")
-dofile(we_c.modpath.."/commands/erode.lua")
-dofile(we_c.modpath.."/commands/fillcaves.lua")
-dofile(we_c.modpath.."/commands/floodfill.lua")
-dofile(we_c.modpath.."/commands/hollow.lua")
-dofile(we_c.modpath.."/commands/layers.lua")
-dofile(we_c.modpath.."/commands/line.lua")
-dofile(we_c.modpath.."/commands/maze.lua")
-dofile(we_c.modpath.."/commands/noise2d.lua")
-dofile(we_c.modpath.."/commands/overlay.lua")
-dofile(we_c.modpath.."/commands/replacemix.lua")
-dofile(we_c.modpath.."/commands/scale.lua")
-dofile(we_c.modpath.."/commands/torus.lua")
-dofile(we_c.modpath.."/commands/walls.lua")
-dofile(we_c.modpath.."/commands/spiral2.lua")
-dofile(we_c.modpath.."/commands/copy.lua")
-dofile(we_c.modpath.."/commands/move.lua")
-dofile(we_c.modpath.."/commands/dome.lua")
-dofile(we_c.modpath.."/commands/metaball.lua")
-dofile(we_c.modpath.."/commands/count.lua")
-dofile(we_c.modpath.."/commands/sculpt.lua")
+dofile(wea_cmd.modpath.."/commands/convolve.lua")
+dofile(wea_cmd.modpath.."/commands/ellipsoid.lua")
+dofile(wea_cmd.modpath.."/commands/ellipsoid2.lua")
+dofile(wea_cmd.modpath.."/commands/erode.lua")
+dofile(wea_cmd.modpath.."/commands/fillcaves.lua")
+dofile(wea_cmd.modpath.."/commands/floodfill.lua")
+dofile(wea_cmd.modpath.."/commands/hollow.lua")
+dofile(wea_cmd.modpath.."/commands/layers.lua")
+dofile(wea_cmd.modpath.."/commands/line.lua")
+dofile(wea_cmd.modpath.."/commands/maze.lua")
+dofile(wea_cmd.modpath.."/commands/noise2d.lua")
+dofile(wea_cmd.modpath.."/commands/overlay.lua")
+dofile(wea_cmd.modpath.."/commands/replacemix.lua")
+dofile(wea_cmd.modpath.."/commands/scale.lua")
+dofile(wea_cmd.modpath.."/commands/torus.lua")
+dofile(wea_cmd.modpath.."/commands/walls.lua")
+dofile(wea_cmd.modpath.."/commands/spiral2.lua")
+dofile(wea_cmd.modpath.."/commands/copy.lua")
+dofile(wea_cmd.modpath.."/commands/move.lua")
+dofile(wea_cmd.modpath.."/commands/dome.lua")
+dofile(wea_cmd.modpath.."/commands/metaball.lua")
+dofile(wea_cmd.modpath.."/commands/count.lua")
+dofile(wea_cmd.modpath.."/commands/sculpt.lua")
 
 -- Meta Commands
-dofile(we_c.modpath.."/commands/meta/init.lua")
+dofile(wea_cmd.modpath.."/commands/meta/init.lua")
 
 -- Selection Tools
-dofile(we_c.modpath.."/commands/selectors/init.lua")
+dofile(wea_cmd.modpath.."/commands/selectors/init.lua")
 
 -- Measure Tools
-dofile(we_c.modpath.."/commands/measure/init.lua")
+dofile(wea_cmd.modpath.."/commands/measure/init.lua")
 
 -- Wireframe
-dofile(we_c.modpath.."/commands/wireframe/init.lua")
+dofile(wea_cmd.modpath.."/commands/wireframe/init.lua")
 
-dofile(we_c.modpath.."/commands/extra/saplingaliases.lua")
-dofile(we_c.modpath.."/commands/extra/basename.lua")
-dofile(we_c.modpath.."/commands/extra/sculptlist.lua")
+dofile(wea_cmd.modpath.."/commands/extra/saplingaliases.lua")
+dofile(wea_cmd.modpath.."/commands/extra/basename.lua")
+dofile(wea_cmd.modpath.."/commands/extra/sculptlist.lua")
 
 -- Don't register the //bonemeal command if the bonemeal mod isn't present
 if minetest.global_exists("bonemeal") then
-	dofile(we_c.modpath.."/commands/bonemeal.lua")
-	dofile(we_c.modpath.."/commands/forest.lua")
+	dofile(wea_cmd.modpath.."/commands/bonemeal.lua")
+	dofile(wea_cmd.modpath.."/commands/forest.lua")
 else
 	minetest.log("action", "[WorldEditAdditions] bonemeal mod not detected: //bonemeal and //forest commands not registered (if you see this message and you're using an alternative mod that provides bonemeal, please get in touch by opening an issue)")
 end
@@ -80,4 +74,4 @@ end
 -- end
 
 
-dofile(we_c.modpath.."/aliases.lua")
+dofile(wea_cmd.modpath.."/aliases.lua")
diff --git a/worldeditadditions_commands/safe.lua b/worldeditadditions_commands/safe.lua
deleted file mode 100644
index 30c89d4..0000000
--- a/worldeditadditions_commands/safe.lua
+++ /dev/null
@@ -1,68 +0,0 @@
-local safe_region_callback = {}
-local safe_region_param = {}
-
-worldeditadditions._override_safe_regions = false -- internal use ONLY!
-
-local function check_region(name, param)
-	local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] --obtain positions
-	if pos1 == nil or pos2 == nil then
-		worldedit.player_notify(name, "no region selected")
-		return nil
-	end
-	return worldedit.volume(pos1, pos2)
-end
-
---`callback` is a callback to run when the user confirms
---`nodes_needed` is a function accepting `param`, `pos1`, and `pos2` to calculate the number of nodes needed
-local function safe_region(callback, nodes_needed)
-	--default node volume calculation
-	nodes_needed = nodes_needed or check_region
-
-	return function(name, param)
-		--check if the operation applies to a safe number of nodes
-		local count = nodes_needed(name, param)
-		if count == nil then return end --invalid command
-		if worldeditadditions._override_safe_regions or count < 10000 then
-			return callback(name, param)
-		end
-
-		--save callback to call later
-		safe_region_callback[name], safe_region_param[name] = callback, param
-		worldedit.player_notify(name, "WARNING: this operation could affect up to " .. count .. " nodes; type //yy to continue or //nn to cancel")
-	end
-end
-
-local function reset_pending(name)
-	safe_region_callback[name], safe_region_param[name] = nil, nil
-end
-
-minetest.register_chatcommand("/yy", {
-	params = "",
-	description = "Confirm a pending operation",
-	func = function(name)
-		local callback, param = safe_region_callback[name], safe_region_param[name]
-		if not callback then
-			worldedit.player_notify(name, "no operation pending")
-			return
-		end
-
-		reset_pending(name)
-		callback(name, param)
-	end,
-})
-
-minetest.register_chatcommand("/nn", {
-	params = "",
-	description = "Abort a pending operation",
-	func = function(name)
-		if not safe_region_callback[name] then
-			worldedit.player_notify(name, "no operation pending")
-			return
-		end
-
-		reset_pending(name)
-	end,
-})
-
-
-return safe_region, check_region, reset_pending
diff --git a/worldeditadditions_core/core/run_command.lua b/worldeditadditions_core/core/run_command.lua
index 8acef1d..67e1803 100644
--- a/worldeditadditions_core/core/run_command.lua
+++ b/worldeditadditions_core/core/run_command.lua
@@ -6,7 +6,7 @@ local human_size = wea_c.format.human_size
 -- TODO: Reimplement worldedit.player_notify(player_name, msg_text)
 
 local function run_command_stage2(player_name, func, parse_result)
-	local success, result_message = func(player_name, unpack(parse_result))
+	local success, result_message = func(player_name, wea_c.table.unpack(parse_result))
 	if result_message then
 		-- TODO: If we were unsuccessfull, then colour the message red
 		worldedit.player_notify(player_name, result_message)
@@ -31,7 +31,7 @@ local function run_command(cmdname, options, player_name, paramtext)
 	end
 	
 	if options.nodes_needed then
-		local potential_changes = options.nodes_needed(player_name, unpack(parse_result))
+		local potential_changes = options.nodes_needed(player_name, wea_c.table.unpack(parse_result))
 		
 		local limit = wea_c.safe_region_limit_default
 		if wea_c.safe_region_limits[player_name] then
diff --git a/worldeditadditions_core/utils/vector3.lua b/worldeditadditions_core/utils/vector3.lua
index efff729..2d97858 100644
--- a/worldeditadditions_core/utils/vector3.lua
+++ b/worldeditadditions_core/utils/vector3.lua
@@ -389,6 +389,7 @@ function Vector3.fromBearing(angle_x, angle_y, length)
 	)
 end
 
+-- TODO: Implement .volume() here
 
 
 --  ██████  ██████  ███████ ██████   █████  ████████  ██████  ██████
