fix#4, fix#3