added default change state implementation