reduce the number of re-positions, and don't bother users observers