Best way to equip accessories

What’s the best way to equip the character an accessory?
I only know these methods:

  1. Using the characters Shirt.ShirtTemplate
character.Shirt.ShirtTemplate = Viewport:FindFirstChild("ViewportCharacter_Torso").Shirt.ShirtTemplate -- random Shirt Template
  1. Using AccessoryDescription with humanoid description:
local humanoidDescription : HumanoidDescription = player.Character.Humanoid:GetAppliedDescription()

local accessoryDescription = Instance.new("AccessoryDescription")
accessoryDescription.Instance = workspace["White hood model"]["white hood"]
accessoryDescription.AccessoryType = Enum.AccessoryType.Hat
accessoryDescription.Parent = humanoidDescription

player.Character.Humanoid:ApplyDescription(humanoidDescription)
  1. Putting the shirt template you want to equip the character directly to the character.