a few changes to sync with better with offical ZH