Suggestions on module loader

Im just looking for overall improvements on my module loader if anyone has any suggestions

-----------------------------
-- SERVICES --
-----------------------------

local runService = game:GetService("RunService")

-----------------------------
-- VARIABLES --
-----------------------------

local player

local warnIdentifier

local currentThread = coroutine.running()

local moduleLoader = {
	Modules = {}
}

-----------------------------
-- PRIVATE FUNCTIONS --
-----------------------------

local function getModulesFolder()
	if runService:IsClient() then
		player = game.Players.LocalPlayer
		
		warnIdentifier = "[C]"
		
		return game.ReplicatedStorage.Modules.ClientModules
	else
		warnIdentifier = "[S]"
		
		return game.ServerStorage.ServerModules
	end
end

local function outputWarning (message)
	warn(warnIdentifier ..": ".. message)
end

local function Require (moduleScript)
	local requiredModule
	
	local success, response = pcall(function()
		requiredModule = require(moduleScript)
	end)
	
	if success then
		moduleLoader.Modules[moduleScript.Name] = requiredModule

		return requiredModule
	else
		
		
		outputWarning("Module script: " ..moduleScript.Name.. " could not be required. Reason: ".. response)
		
		return
	end
end

local function initializeModule (requiredModule)
	if not requiredModule.Init then
		return
	end
	
	local success, response = pcall(function()
		requiredModule:Init(player)
	end)
	
	if not success then
		outputWarning(response)
	end
end



local function startModule (requiredModule)
	if not requiredModule.Start then
		return
	end

	local success, response = pcall(function()
		requiredModule:Start()
	end)

	if not success then
		warn(response)
	end
end
-----------------------------
-- PUBLIC FUNCTIONS --
-----------------------------

function moduleLoader:startLoader ()
	local modulesFolder = getModulesFolder()
	
	for _, moduleScript in pairs(modulesFolder:GetDescendants()) do
		if not moduleScript or not moduleScript:IsA("ModuleScript") then
			continue
		end
		
		local requiredModule = Require(moduleScript)
		if not requiredModule then
			continue	
		end
		
		initializeModule(requiredModule)
		startModule(requiredModule)
	end
end

function moduleLoader:Get(name)
	return self.Modules[name]
end

return moduleLoader