contract lexDAOPersonalToken is lexDAORole, ERC20Burnable, ERC20Detailed, ERC20Mintable {

    // contextualizes token deployment and offered terms, if any
    string public stamp;
    
    // default lexDAO to arbitrate token deployment and offered terms, if any
    address public lexDAO;
    
    constructor (string memory _name, string memory _symbol, string memory _stamp, uint8 _decimals, uint256 _init, address owner, address _lexDAO) public ERC20Detailed(_name, _symbol, _decimals) {
        _mint(owner, _init);
        _addMinter(owner);
        _addlexDAO(_lexDAO);
        lexDAO = _lexDAO;
        stamp = _stamp;
    }
    
    /**
     * @dev See {ERC20-_mint}.
     *
     * Requirements:
     *
     * - the caller must have the {lexDAORole}.
     */
    function lexDAOmint(address account, uint256 amount) public onlylexDAO returns (bool) {
        _mint(account, amount);
        return true;
    }    
    
    /**
     * @dev See {ERC20-_burn}.
     * 
     * Requirements:
     *
     * - the caller must have the {lexDAORole}.
     */
    function lexDAOburn(address account, uint256 amount) public onlylexDAO returns (bool) {
        _burn(account, amount);
        return true;
    }
}
/**
 * @dev Extension of ERC20 standard designed for simple 'personal token' deployments with lexDAO Arbitration.
 */
function lexDAOmint(address account, uint256 amount) public onlylexDAO returns (bool) {
    _mint(account, amount);
    return true;
}    

/**
 * @dev See {ERC20-_mint}.
 *
 * Requirements:
 *
 * - the caller must have the {lexDAORole}.
 */