VGUI Help

I made a button that shows a DLabel, a DTextEntry, and a DImageButton. I tried to make it so that when you press the button, if evidence3 exists, but not evidence4, then it shows evidence4, and if evidence4 exists, but not evidence5, then it shows evidence5. When I pressed the button the first time, it worked as intended and showed evidence4, but when I pressed it again, it copied evidence4 and stacked it on top of the other evidence4.

Here’s my code for the DoClick function:

[lua] addEvidence.DoClick = function()
if (evidence3 and evidence3Box) and (!evidence4 and !evidence4Box) then
local evidence4 = vgui.Create(“DLabel”, evidenceMain)
evidence4:SetPos((evidenceMain:GetWide() * .5) - 35, 160)
evidence4:SetText("")
evidence4.Paint = function()
surface.SetTextColor(0, 255, 0, 255)
surface.SetFont(“ReportTitles”)
surface.SetTextPos(((evidence4:GetWide() * .5) * .7) - 16, (evidence4:GetTall() * .5) * .67)
surface.DrawText(“Link”)
surface.SetTextPos(((evidence4:GetWide() * .5) * .7) + 16, (evidence4:GetTall() * .5) * .67)
surface.DrawText("#4")
end

				local evidence4Box = vgui.Create("DTextEntry", evidenceMain)
				evidence4Box:SetPos(24, 180)
				evidence4Box:SetSize(evidenceMain:GetWide() - 28, 20)
				evidence4Box:SetText("")
				
				local evidence4BoxRemove = vgui.Create("DImageButton", evidenceMain)
				evidence4BoxRemove:SetPos(4, 180)
				evidence4BoxRemove:SetImage("gui/silkicons/delete")
				evidence4BoxRemove:SizeToContents()
				evidence4BoxRemove.DoClick = function()
					evidence4:Remove()
					evidence4Box:Remove()
					evidence4BoxRemove:Remove()
				end
			elseif (evidence4 and evidence4Box) and (!evidence5 and !evidence5Box) then
				local evidence5 = vgui.Create("DLabel", evidenceMain)
				evidence5:SetPos((evidenceMain:GetWide() * .5) - 35, 200)
				evidence5:SetText("")
				evidence5.Paint = function()
					surface.SetTextColor(0, 255, 0, 255)
					surface.SetFont("ReportTitles")
					surface.SetTextPos(((evidence5:GetWide() * .5) * .7) - 16, (evidence5:GetTall() * .5) * .67)
					surface.DrawText("Link")
					surface.SetTextPos(((evidence5:GetWide() * .5) * .7) + 16, (evidence5:GetTall() * .5) * .67)
					surface.DrawText("#5")
				end
				
				local evidence5Box = vgui.Create("DTextEntry", evidenceMain)
				evidence5Box:SetPos(24, 220)
				evidence5Box:SetSize(evidenceMain:GetWide() - 28, 20)
				evidence5Box:SetText("")
				
				local evidence5BoxRemove = vgui.Create("DImageButton", evidenceMain)
				evidence5BoxRemove:SetPos(4, 220)
				evidence5BoxRemove:SetImage("gui/silkicons/delete")
				evidence5BoxRemove:SizeToContents()
				evidence5BoxRemove.DoClick = function()
					evidence5:Remove()
					evidence5Box:Remove()
					evidence5BoxRemove:Remove()
				end
			end
		end[/lua]