I have reviewed this code and it does work in a consistent ordered manner. There might be an oddity if you manually select one of the Person atoms, and then use cycle select. In that case it could go in an order you might not expect. That is because the cycle select does not take into account manual selection. It only cares about the last person selected by the cycle select button. You can try this out and see for yourself by using cycle select to go through all the Person atoms several times. You will see it is consistent. But then if you manually select one of the Person atoms and then use cycle select, it will select the next one based on the last cycle select. I can probably fix it so when you manually select a Person atom it updates the cycle select data with that info so it will be consistent.