GUI updates now more consistent (though tricky with SwingUtils.invokeLater)