function getTokensForContribution(uint weiContribution) private returns(uint timeOfRequest, uint tokenAmount, uint weiRemainder, uint bonus) { 
        
        timeOfRequest = block.timestamp;
        
        bonus = 0;
                 
        
        if (timeOfRequest <= preSale.end) {
            
            
            tokenAmount = weiContribution / preSale.priceInWei;
            weiRemainder = weiContribution % preSale.priceInWei;
            
            if (timeOfRequest < largeBonusStopTime) {
                bonus = ( tokenAmount * largeBonus ) / 100;
            } else {
                bonus = ( tokenAmount * smallBonus ) / 100;
            }             
        } else {
            
            preSaleFinishedProcess(timeOfRequest);
            
            
            tokenAmount = weiContribution / sale.priceInWei;
            weiRemainder = weiContribution % sale.priceInWei;
        } 
        return(timeOfRequest, tokenAmount, weiRemainder, bonus);
    }