function addPlan(address _beneficiary, uint256 _startTime, uint256 _locktoTime, uint256 _releaseStages, uint256 _endTime, uint256 _totalToken, bool _revocable, string _remark) public onlyOwner checkPayPool(_totalToken) {
        require(_beneficiary != address(0));
        require(plans[_beneficiary].beneficiary == address(0));

        require(_startTime > 0 && _locktoTime > 0 && _releaseStages > 0 && _totalToken > 0);
        require(_locktoTime > block.timestamp && _locktoTime >= _startTime  && _endTime > _locktoTime);

        plans[_beneficiary] = Plan(_beneficiary, _startTime, _locktoTime, _releaseStages, _endTime, _totalToken, 0, _revocable, false, _remark);
        planCount = planCount.add(1);
        emit AddPlan(_beneficiary, _startTime, _locktoTime, _releaseStages, _endTime, _totalToken, 0, _revocable, false, _remark);
    }