public void notifyListeners(PropertyChangeEvent stateChange) {
        if (stateChange == null) {
            throw new IllegalArgumentException("Cannot notify listeners with a null PropertyChangeEvent!");
        }
        
        for (PropertyChangeListener listener : changeListeners) {
            listener.propertyChange(stateChange);
        }
    }