Switch

I've just realised that you should probably fire a ChangeEvent right here so that we can listen to this event fom outside. You should also add some javadoc describing this behavior.