fix #22 fix #21