manage loops when freeing