fix ie bug, and optimize