Player classes not working - Help, please?

Hey everyone I’m working on a gamemode but can’t seem to get the classes working. I’m not sure if I’m doing it right but I’ve already tried to sort it out myself but can’t seem to do so. Anyways, basically players aren’t getting the classes load out and neither are their models being set. Here’s the code:

init.lua


AddCSLuaFile("shared.lua")
AddCSLuaFile("cl_init.lua")
AddCSLuaFile("player_myclass.lua")

include("shared.lua")

DeriveGamemode("sandbox")

function GM:PlayerInitialSpawn( ply )
 ply:SetTeam("1")
 player_manager.SetPlayerClass( ply, "player_myclass" )
end

function GM:PlayerSetModel( ply )
 player_manager.RunClass( ply, "SetModel" )
end

function GM:PlayerLoadout( ply )
 ply:StripWeapons()
 player_manager.RunClass( ply, "Loadout" )
end

shared.lua


GM.Name		= ""
GM.Author	= ""

team.SetUp( 1, "Team1", Color( 125, 125, 125, 255 ) )

include("player_myclass.lua")

player_myclass.lua


DEFINE_BASECLASS( "player_default" )

local PLAYER_MYCLASS = {} 

PLAYER_MYCLASS.WalkSpeed 			= 50
PLAYER_MYCLASS.RunSpeed			= 400
PLAYER_MYCLASS.CrouchedWalkSpeed 	= 0.1
PLAYER_MYCLASS.DuckSpeed			= 0.1
PLAYER_MYCLASS.UnDuckSpeed			= 0.1
PLAYER_MYCLASS.JumpPower			= 0.1
PLAYER_MYCLASS.CanUseFlashlight    = true
PLAYER_MYCLASS.MaxHealth			= 100
PLAYER_MYCLASS.StartHealth			= 100
PLAYER_MYCLASS.StartArmor			= 0
PLAYER_MYCLASS.DropWeaponOnDie		= false
PLAYER_MYCLASS.TeammateNoCollide 	= true
PLAYER_MYCLASS.AvoidPlayers		= false
PLAYER_MYCLASS.UseVMHands			= true

function PLAYER_MYCLASS:Spawn()
	BaseClass.Spawn( self )
end

function PLAYER_MYCLASS:SetModel()   
	self.Player:SetModel( "models/player/group01/male_07.mdl" )
end

function PLAYER_MYCLASS:Loadout()   
	self.Player:Give( "weapon_hands" )
end

player_manager.RegisterClass( "player_myclass", PLAYER_MYCLASS, "player_default" )

Some help would be much appreciated, thanks in advance!