nanzhu:move code from V2