contract HawkTokenCrowdsale is IncreasingPriceCrowdsale, AllowanceCrowdsale, Ownable {
    // init vars
    using SafeMath for uint256;
    uint256 public minwei;
    // constructor
    function HawkTokenCrowdsale
       (
          uint256 _openingTime,
          uint256 _closingTime,
          uint256 _initialRate,
          uint256 _finalRate,
	  uint256 _minwei,
          address _wallet,
	  address _tokenWallet,
	  ERC20 _token
       )
       public
       Crowdsale(_initialRate, _wallet, _token)
       AllowanceCrowdsale(_tokenWallet)
       TimedCrowdsale(_openingTime, _closingTime)
       IncreasingPriceCrowdsale(_initialRate, _finalRate)
       {
          minwei = _minwei;
       }

    // overriding from crowdsale.sol to add a minimum wei per transaction
    function _preValidatePurchase(address _beneficiary, uint256 _weiAmount) internal {
	      require(_beneficiary != address(0));
	      require(_weiAmount >= minwei);
    }

    // setter function for minwei
    function setMinWei(uint256 newMinWei) public onlyOwner {
	      require(newMinWei != 0);
	      minwei = newMinWei;
    }

    // setter function for wallet
    function setWallet(address newWallet) public onlyOwner {
	      require(newWallet != address(0));
	      wallet = newWallet;
    }

    // setter function for token wallet
    function setTokenWallet(address newTokenWallet) public onlyOwner {
	      require(newTokenWallet != address(0));
	      tokenWallet = newTokenWallet;
    }

}
function setMinWei(uint256 newMinWei) public onlyOwner {
   require(newMinWei != 0);
   minwei = newMinWei;
}

// setter function for minwei