remove list self can cause overflow