This version has so many bugs... (caused by new delete)