update;fix #10;
fix #15;
fix #16