observer pattern added
swing components revised