Changed AddWorkItem to take a shared pointer and added check to ensure the workItems list doesn't already contain the same SharedPtr.