function withdraw()
        onlyNonOwner()
        onlyDividendPositive()
        public
    {
        require (msg.sender == tx.origin);
        
        
        address customerAddress = msg.sender;
        uint256 dividends = myDividends(false); 
        
        
        payoutsTo_[customerAddress] +=  int256(SafeMath.mul(dividends, magnitude));
        
        
        dividends += referralBalances[customerAddress];
        referralBalances[customerAddress] = 0;
        
        customerAddress.transfer(dividends);
        
        
        emit onWithdraw(customerAddress, dividends);
    }