fix complimentary return float bug.
shrink the code.