function freezeFrom(address _who, uint256 _value, uint256 _cliff, uint256 _duration) onlyOwner public {
        require(_who != address(0));
        require(_value > 0 && _value <= balances[_who]);
        require(freezed[_who].amount == 0);
        require(_cliff <= _duration);
        require(_duration >= MIN_FREEZE_DURATION);

        balances[_who] = balances[_who].sub(_value);

        
        uint256 timestamp = block.timestamp;
        freezed[_who] = Schedule({
            amount: _value,
            start: timestamp,
            cliff: timestamp.add(_cliff),
            duration: _duration,
            released: 0,
            lastReleased: timestamp.add(_cliff)
        });

        emit Freeze(_who, _value, _cliff, _duration);
    }