don't pass isDelete recusively