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