modify the MemCpy function