This improves type safety, simplifies memory management, and is a step towards removing the GSQueue container.