some corrections by shiwen