change type detection