function allocateTokens(address beneficiary, uint256 tokensToAllocate, uint256 stage, uint256 weiPrice) public onlyOwner {
    require(stage <= 5);
    uint256 tokensWithDecimals = toBRFWEI(tokensToAllocate);
    uint256 weiAmount = weiPrice * tokensWithDecimals;
    weiRaised = weiRaised.add(weiAmount);
    if (weiAmount > 0) {
      totalTokensByStage[stage] = totalTokensByStage[stage].add(tokensWithDecimals);
      indirectInvestors[beneficiary] = indirectInvestors[beneficiary].add(tokensWithDecimals);
    }
    token.transfer(beneficiary, tokensWithDecimals);
    TokenAllocated(beneficiary, tokensWithDecimals, weiAmount);
  }