fix #112 fix #113 fix #114