replaced swings changeEvent/Listener with java.util.Observer/Listener