fix #28 fix #29