function _validatePurchase(
    address _beneficiary,
    uint256 _weiAmount,
    uint256 _tokenAmount
  )
    internal view
  {
    require(_beneficiary != address(0));
    require(_weiAmount != 0);
    require(_tokenAmount >= minPurchase);
    require(totalSupply_ + _tokenAmount <= hardCap);
    require(block.timestamp >= crowdsaleOpeningTime);
    require(block.timestamp <= crowdsaleClosingTime);
  }