fix return bugs