void register_init(IFCModel __model) throws Exception {
        JButton[] buttons;
        JMenuItem[] items;
        JMenu menu;        
        int _MAX;

        _model = __model; 
        _persistence = new HashMap();               
        _objectfile = new File(_CDEFAULT_OBJECT_FILE); 
        _message = new MessagePanel();
        _tournament = new TournamentPanel();
        _frame = new JFrame();
        _menubar = new JMenuBar();
        menu = _model.exportMenu();
        if (menu != null) {
            _menubar.add(menu);
        }
        menu = _tournament.exportMenu();
        if (menu != null) {
            _menubar.add(menu);
        }
        menu = new JMenu("Storage");
        _save = new JMenuItem("Save State");
        _save.addActionListener(this);
        _load = new JMenuItem("Load State");
        _load.addActionListener(this);
        menu.add(_save);
        menu.add(_load);
        _menubar.add(menu);

        _toolbar = new JToolBar();
        buttons = _model.exportTools();
        if (buttons != null) {
            _MAX = buttons.length;
            for (int i=0; i < _MAX; i++) {
                _toolbar.add(buttons[i]);
            }
        }
        buttons = _message.exportTools();
        if (buttons != null) {
            _MAX = buttons.length;
            for (int i=0; i < _MAX; i++) {
                _toolbar.add(buttons[i]);
            }
        }
        _saveb = new JButton(_CSAVE_ICON);
        _saveb.addActionListener(this);
        _toolbar.add(_saveb);
        _loadb = new JButton(_CLOAD_ICON);
        _loadb.addActionListener(this);
        _toolbar.add(_loadb);

        buttons = _tournament.exportTools();
        if (buttons != null) {
            _MAX = buttons.length;
            for (int i=0; i < _MAX; i++) {
                _toolbar.add(buttons[i]);
            }
        }

        _view = _model.exportViewPanel();
        _control = _model.exportControlPanel();
        _display = new JTabbedPane();
        _display.addTab("View", _view);
        _display.addTab("Tournament", _tournament.exportViewPanel());

        _splitv = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
        _splitv.setLeftComponent(_control);
        _splitv.setRightComponent(_message);
        _splitv.setOneTouchExpandable(true);

        _splith = new JSplitPane();
        _splith.setLeftComponent(_display);
        _splith.setRightComponent(_splitv);
        _splith.setOneTouchExpandable(true);
        resetViewSize();
                
        _frame.getContentPane().setLayout(new BorderLayout());
        _frame.setTitle(_model.name());        
        _frame.setJMenuBar(_menubar);     
        _frame.getContentPane().add(_toolbar, BorderLayout.NORTH);        
        _frame.getContentPane().add(_splith, BorderLayout.CENTER);        
        _frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        _frame.pack();
        _frame.setVisible(true);
    }