fix issue #76
但是感觉不够完整， 需要再做修正