only queue each type once