added logDuplicate()