fix return value bug