PlayerData Module Script referring to all players if new player joins, how to fix?

Hello, so I recently found the issue to my previous topic but I’m not sure how to fix it, so basically the script tells the main module script (Shack) to spawn the player in a certain spot, the problem is when two players join the game, both players are loaded if one of them joins the game. The problem is with PlayerManater (PlayerData Module)

PlayerManager Module

local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")
local playerData = DataStoreService:GetDataStore("ShackTestCoolIKnow")

local function leaderBoardSetup(LevelsValue, ExperienceValue)
	
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	
	local Levels = Instance.new("IntValue")
	Levels.Name = "Level"
	Levels.Value = LevelsValue
	Levels.Parent = leaderstats
	
	local Experience = Instance.new("IntValue")
	Experience.Name = "Exp"
	Levels.Value = ExperienceValue
	
	return leaderstats
	
end

local function LoadData(Player)
	
	local success, result = pcall(function()
		return playerData:GetAsync(Player.UserId)
	end)
	
	if not success then
		warn(result)
	end
	return success, result
end

local function SaveData(Player, Data)
	
	local success, result = pcall(function()
		playerData:SetAsync(Player.UserId, Data)
	end)
	
	if not success then
		warn(result)
	end
	return success
end

local SessionData = {}

local playerAdded = Instance.new("BindableEvent")
local playerRemoving = Instance.new("BindableEvent")

local PlayerManager = {}

PlayerManager.PlayerAdded = playerAdded.Event
PlayerManager.PlayerRemoving = playerRemoving.Event

function PlayerManager.Start()
	
	for _, player in ipairs(Players:GetPlayers()) do
		coroutine.wrap(PlayerManager.OnPlayerAdded)(player)
	end
	
	Players.PlayerAdded:Connect(PlayerManager.OnPlayerAdded)
	Players.PlayerRemoving:Connect(PlayerManager.OnPlayerRemoving)
	
	game:BindToClose(PlayerManager.OnClose)
	
end

function PlayerManager.OnPlayerAdded(player)
	
	player.CharacterAdded:Connect(function(character)
		PlayerManager.OnCharacterAdded(player, character)
	end)

	local success, data = LoadData(player)
	SessionData[player.UserId] = success and data or {
		Level = 1,
		Exp = 0
		
	}

	local leaderstats = leaderBoardSetup(PlayerManager.GetLevels(player), PlayerManager.GetExp(player))
	leaderstats.Parent = player

	playerAdded:Fire(player)
end

function PlayerManager.OnCharacterAdded(player, character)
	
	local humanoid = character:FindFirstChild("Humanoid")
	
	if humanoid then
		humanoid.Died:Connect(function()
			task.wait(3)
			player:LoadCharacter()
			
		end)
	end
end

function PlayerManager.GetLevels(player)
	return SessionData[player.UserId].Level
end

function PlayerManager.GetExp(player)
	return SessionData[player.UserId].Exp
end

function PlayerManager.SetLevels(player, value)
	
	if value then
		SessionData[player.User.Id].Level = value
		
		local leaderstats = player:FindFirstChild("leaderstats")
		
		if leaderstats then
			local Levels = leaderstats:FindFirstChild("Level")
			
			if Levels then
				Levels.Value = value
			end
		end
	end
end

function PlayerManager.SetExp(player, value)
	
	if value then
		
		SessionData[player.UserId].Exp = value
		local leaderstats = player:FindFirstChild("leaderstats")
		
		if leaderstats then
			local Experience = leaderstats:FindFirstChild("Exp")
			
			if Experience then
				Experience.Value = value
			end
		end
	end
end

function PlayerManager.OnPlayerRemoving(player)
	SaveData(player, SessionData[player.UserId])
	playerRemoving:Fire(player)
end

function PlayerManager.OnClose()
	for _, player in ipairs(Players:GetPlayers()) do
		PlayerManager.OnPlayerRemoving(player)()
	end
end

return PlayerManager

Server Script

local Playerss = game:GetService("Players")
local ServerScriptService = game:GetService("ServerScriptService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

ReplicatedStorage.Events.Load.Initiate.OnServerEvent:Connect(function(plr, employeesJob)
	
	local PlayerManager = require(ServerScriptService.Data.PlayerManager)
	local ShackModule = require(ServerScriptService.Modules.Shack)
	local spawnLocations = game.Workspace.JobSpawns
	
	PlayerManager.Start()
	
	PlayerManager.PlayerAdded:Connect(function()
		
		print("Welcome to Burger Shack!")
		local newPlayerJob = ShackModule.New(plr, employeesJob)
		plr.Team = employeesJob
		newPlayerJob:Init()
		
		task.wait(3)
		
		local function changedJob()
			
			local newJob = plr.Team
			newPlayerJob:JobChanged(newJob)
		end
		
		plr:GetPropertyChangedSignal("Team"):Connect(changedJob)
		
	end)
end)