fix #210,fix #209,fix #204,fix #190,fix #189