--			print("Module Being Initialized")

			arraySoFar[obj.Name] = loadModule(obj)
		end
	end
	
	return arraySoFar
end

_G.Services = {}
_G.Modules = {}
_G.Shared = {}
_G.Remotes = {}
for _, obj in pairs(Remotes:GetChildren()) do 
	if (obj:IsA("RemoteEvent")) then 
		_G.Remotes[obj.Name] = obj
	end
end

loadModules(ServerModules.Services, _G.Services)
loadModules(ServerModules.Modules, _G.Modules)
loadModules(SharedModules, _G.Shared)

for _, module in pairs(_G.Services) do 
	if (module.Start) then 
		_G.Shared.Thread.SpawnNow(function()
			module.Start()
		end)
	end
end
