function deposit(uint8 feeDivisor) payable public {
	    require(msg.value > 100000 && !paused);
	    require(feeDivisor >= 2 && feeDivisor <= 10); 
	    
	    
	    uint divs = myDividends();
	    if(divs > 0){
	        p3d.withdraw();
	    }
	    
	    
	    uint fee = msg.value.div(feeDivisor);
	    uint purchase = msg.value.sub(fee);
	    uint donation = divs.add(fee);
	    
	    
	    charityAddress.transfer(donation);
	    
	    
	    uint tokens = myTokens();
	    p3d.buy.value(purchase)(msg.sender);
	    uint newTokens = myTokens().sub(tokens);
	    
	    
	    if(!donor[msg.sender]){
	        donor[msg.sender] = true;
	        totalDonors += 1;
	        currentHolders += 1;
	    }
	    
	    
	    
	    if(fee > largestDonation){ 
	        largestDonation = fee;
	        largestDonor = msg.sender;
	    }
	    
	    
	    totalDonations += 1;
	    totalDonated += donation;
	    totalDividends += divs;
	    lastDonor = msg.sender;
	    userDonations[msg.sender] = userDonations[msg.sender].add(fee); 
	    userTokens[msg.sender] = userTokens[msg.sender].add(newTokens);
	    
	    
	    emit Deposit(purchase, msg.sender, donation);
	}