copied some functions from Blizzard_QuestObjectiveTracker.lua to prevent taint on original tracker