integrating firePropertyChange + switch case