use set to avoid