constructor(
        uint256 _startTime,
        uint256 _endTime,
        uint256 _rate,
        uint256 _cap,
        address _wallet,
        ERC20 _token
    ) public {
        require(_startTime >= block.timestamp && _endTime >= _startTime);
        require(_rate > 0);
        require(_cap > 0);
        require(_wallet != address(0));
        require(_token != address(0));

        startTime = _startTime;
        endTime = _endTime;
        rate = _rate;
        cap = _cap;
        wallet = _wallet;
        token = _token;
    }