using sets better