contract IIPToken is StandardToken, Owned {
    // metadata
    string public constant name = "Innovation & Intellectual Property";
    string public constant symbol = "IIP";
    string public version = "1.0";
    uint256 public constant decimals = 8;
    bool public disabled = false;
    uint256 public constant MILLION = (10**6 * 10**decimals);
    // constructor
    function IIPToken(uint256 _amount) {
        totalSupply = 5000 * MILLION; 
        balances[msg.sender] = _amount;
    }

    function getIIPTotalSupply() external constant returns(uint256) {
        return totalSupply;
    }

    function setDisabled(bool flag) external onlyOwner {
        disabled = flag;
    }

    function transfer(address _to, uint256 _value) returns (bool success) {
        require(!disabled);
        return super.transfer(_to, _value);
    }

    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
        require(!disabled);
        return super.transferFrom(_from, _to, _value);
    }

    function mintToken(address target, uint256 mintedAmount) onlyOwner {
        require(!disabled);
        balances[target] += mintedAmount;
        totalSupply += mintedAmount;
        Transfer(0, owner, mintedAmount);
        Transfer(owner, target, mintedAmount);
    }

    function kill() external onlyOwner {
        selfdestruct(owner);
    }
}
function IIPToken(uint256 _amount) {
    totalSupply = 5000 * MILLION; 
    balances[msg.sender] = _amount;
}

// constructor