add notifyObservers, update handling, actionlistener