implement duplication avoidance