code optimized,add some vendors.