super's has_changed() wasn't actually being called