Updated all observers to use invokeLater for thread safety.