contract DOCTToken is MintableToken, ERC827Token, NoOwner {
    string public symbol = 'DOCT';
    string public name = 'DocTailor';
    uint8 public constant decimals = 8;

    address founder;                //founder address to allow him transfer tokens even when transfers disabled
    bool public transferEnabled;    //allows to dissable transfers while minting and in case of emergency

    function setFounder(address _founder) onlyOwner public {
        founder = _founder;
    }
    function setTransferEnabled(bool enable) onlyOwner public {
        transferEnabled = enable;
    }
    modifier canTransfer() {
        require( transferEnabled || msg.sender == founder || msg.sender == owner);
        _;
    }
    
    function transfer(address _to, uint256 _value) canTransfer public returns (bool) {
        return super.transfer(_to, _value);
    }
    function transferFrom(address _from, address _to, uint256 _value) canTransfer public returns (bool) {
        return super.transferFrom(_from, _to, _value);
    }
    function transfer(address _to, uint256 _value, bytes _data) canTransfer public returns (bool) {
        return super.transfer(_to, _value, _data);
    }
    function transferFrom(address _from, address _to, uint256 _value, bytes _data) canTransfer public returns (bool) {
        return super.transferFrom(_from, _to, _value, _data);
    }
}
// ==== DOCT Contracts ===
function setFounder(address _founder) onlyOwner public {
        founder = _founder;
    }
//allows to dissable transfers while minting and in case of emergency