prepare for LPO with deletion
realize LPO with deletion