comment the error check of initial structure and final struct, Do not know whether correct