diff --git a/Framework/Foundation/Foundation.csproj b/Framework/Foundation/Foundation.csproj
index 58286b8..bd3f1a3 100644
--- a/Framework/Foundation/Foundation.csproj
+++ b/Framework/Foundation/Foundation.csproj
@@ -15,6 +15,7 @@
+
diff --git a/Framework/Foundation/Lifecycles/Disposer.cs b/Framework/Foundation/Lifecycles/Disposer.cs
new file mode 100644
index 0000000..1b1731e
--- /dev/null
+++ b/Framework/Foundation/Lifecycles/Disposer.cs
@@ -0,0 +1,46 @@
+using System.Runtime.CompilerServices;
+using System.Reactive.Disposables;
+
+namespace Toolkit.Framework.Foundation;
+
+public class Disposer : IDisposer
+{
+ private readonly ConditionalWeakTable