proposal: faster, simpler, no repeats, no attribute change.