fix #115;
fix #116;
fix #117;