avoid double-remove