improve some performance