reverting list retain position, the code was messy