function buyTokens(address beneficiary) whenNotPaused() payable {
    require(beneficiary != 0x0);
    require(msg.value != 0);
    require(block.timestamp <= END);

    uint256 etherAmount = msg.value;
    etherRaised = etherRaised.add(etherAmount);

    uint256 tokens = etherAmount.mul(getRate()).div(10000000000);
    token.mint(beneficiary, tokens);

    wallet.transfer(msg.value);
  }