fix #203,fix #202,fix #201,fix#200,fix #199,fix #198,fix #188