diff --git a/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t01.dart b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t01.dart
index 7eb59ed..8bcda2d 100644
--- a/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t01.dart
+++ b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t01.dart
@@ -21,7 +21,7 @@
 import "../gc_utils_lib.dart";
 import "../../../Utils/expect.dart";
 
-class A{}
+class A {}
 Object? returnedToken;
 int cnt = 0;
 
diff --git a/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t02.dart b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t02.dart
index a0051bb..b25b312 100644
--- a/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t02.dart
+++ b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t02.dart
@@ -20,7 +20,7 @@
 import "../gc_utils_lib.dart";
 import "../../../Utils/expect.dart";
 
-class A{}
+class A {}
 
 int cnt = 0;
 final Finalizer finalizer = Finalizer((token) {
diff --git a/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t03.dart b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t03.dart
index 7c943a8..9045653 100644
--- a/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t03.dart
+++ b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t03.dart
@@ -21,7 +21,7 @@
 import "../gc_utils_lib.dart";
 import "../../../Utils/expect.dart";
 
-class A{}
+class A {}
 Object? returnedToken;
 int cnt = 0;
 
diff --git a/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t04.dart b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t04.dart
index c1460d4..3e53950 100644
--- a/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t04.dart
+++ b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A01_t04.dart
@@ -20,7 +20,7 @@
 import "../gc_utils_lib.dart";
 import "../../../Utils/expect.dart";
 
-class A{}
+class A {}
 
 int cnt = 0;
 final Finalizer<Object> finalizer = Finalizer((token) {
diff --git a/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A02_t01.dart b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A02_t01.dart
index 8c88ee2..64c5a6d 100644
--- a/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A02_t01.dart
+++ b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A02_t01.dart
@@ -2,16 +2,9 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-/// @assertion void attach(
-///    Object value,
-///    T finalizationToken,
-///    {Object? detach}
-/// )
-/// Attaches this finalizer to [value].
-///
-/// When [value] is longer accessible to the program, while still having an
-/// attachement to this finalizer, the [callback] of this finalizer may be
-/// called with [finalizationToken] as argument.
+/// @assertion When [value] is longer accessible to the program, while still
+/// having an attachement to this finalizer, the [callback] of this finalizer
+/// may be called with [finalizationToken] as argument.
 ///
 /// @description Checks that callback function cannot be called while
 /// finalization token is still accessible.
@@ -20,8 +13,6 @@
 import "../gc_utils_lib.dart";
 import "../../../Utils/expect.dart";
 
-class A{}
-
 bool called = false;
 final Finalizer finalizer = Finalizer((_) {
   called = true;
diff --git a/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A02_t02.dart b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A02_t02.dart
index b3d2585..3fd8c24 100644
--- a/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A02_t02.dart
+++ b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A02_t02.dart
@@ -2,26 +2,17 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-/// @assertion void attach(
-///    Object value,
-///    T finalizationToken,
-///    {Object? detach}
-/// )
-/// Attaches this finalizer to [value].
+/// @assertion When [value] is longer accessible to the program, while still
+/// having an attachement to this finalizer, the [callback] of this finalizer
+/// may be called with [finalizationToken] as argument.
 ///
-/// When [value] is longer accessible to the program, while still having an
-/// attachement to this finalizer, the [callback] of this finalizer may be
-/// called with [finalizationToken] as argument.
-///
-/// @description Checks that callback function cannot be called only once when
-/// finalization token is unaccessible.
+/// @description Checks that callback function can be called only once when
+/// given object is inaccessible.
 /// @author iarkh@unipro.ru
 
 import "../gc_utils_lib.dart";
 import "../../../Utils/expect.dart";
 
-class A{}
-
 int called = 0;
 final Finalizer finalizer = Finalizer((_) {
   called++;
@@ -40,7 +31,7 @@
   value = 12345;
 
   // Initial object is not accessible anymore.
-  // Do something, call triggerGC sevewral times and check that callback is
+  // Do something, call triggerGC several times and check that callback was
   // called only once during the execution.
   test(value);
   triggerGcWithDelay();
diff --git a/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A03_t01.dart b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A03_t01.dart
new file mode 100644
index 0000000..4839193
--- /dev/null
+++ b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A03_t01.dart
@@ -0,0 +1,49 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion If a non-null detach value is provided, that object can be passed
+/// to Finalizer.detach to remove the attachment again.
+///
+/// @description Checks that if detach token was passed to [attach], given
+/// object can be detached from the finalizer using [detach].
+/// @author iarkh@unipro.ru
+
+import "../gc_utils_lib.dart";
+import "../../../Utils/expect.dart";
+
+class A {}
+
+int called = 0;
+final Finalizer finalizer = Finalizer((_) {
+  called++;
+});
+
+void test(Object o) {
+  triggerGcWithDelay();
+}
+
+Object test1(Object obj) => obj;
+
+main() {
+  Object value = Object();
+  Object detachToken = A();
+  finalizer.attach(value, "Finalization token", detach: detachToken);
+  print(value);
+  finalizer.detach(detachToken);
+
+  value = 12345;
+
+  // Initial object is not accessible anymore.
+  // Do something, call triggerGC several times and check that callback was
+  // not called during the execution.
+  test(value);
+  triggerGcWithDelay();
+
+  var value1 = test1(value);
+  triggerGcWithDelay();
+  triggerGcWithDelay();
+  triggerGcWithDelay();
+
+  Expect.equals(0, called);
+}
diff --git a/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A03_t02.dart b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A03_t02.dart
new file mode 100644
index 0000000..d3ba8f9
--- /dev/null
+++ b/LanguageFeatures/FinalizationRegistry/Finalizer/attach_A03_t02.dart
@@ -0,0 +1,29 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion If a non-null detach value is provided, that object can be passed
+/// to Finalizer.detach to remove the attachment again.
+///
+/// @description Checks that nothing happens if detach token is [null].
+/// @author iarkh@unipro.ru
+
+import "../gc_utils_lib.dart";
+import "../../../Utils/expect.dart";
+
+class A {}
+
+int cnt = 0;
+final Finalizer<Object> finalizer = Finalizer((token) {
+  cnt++;
+});
+
+main() {
+  A detachToken = A();
+  {
+    Object value = Object();
+    finalizer.attach(value, "Finalization token", detach: null);
+  }
+  triggerGcWithDelay();
+  Expect.equals(1, cnt);
+}
