diff --git a/src/modules/Elsa.Workflows.Core/Models/ActivityT.cs b/src/modules/Elsa.Workflows.Core/Models/ActivityT.cs
new file mode 100644
index 000000000..58e668754
--- /dev/null
+++ b/src/modules/Elsa.Workflows.Core/Models/ActivityT.cs
@@ -0,0 +1,43 @@
+using Elsa.Expressions.Models;
+using Elsa.Workflows.Core.Contracts;
+
+namespace Elsa.Workflows.Core.Models;
+
+///
+/// Base class for custom activities that return a result.
+///
+public abstract class Activity : Activity, IActivityWithResult
+{
+ ///
+ protected Activity(string? source = default, int? line = default) : base(source, line)
+ {
+ }
+
+ ///
+ protected Activity(string activityType, int version = 1, string? source = default, int? line = default) : base(activityType, version, source, line)
+ {
+ }
+
+ ///
+ protected Activity(MemoryBlockReference? output, string? source = default, int? line = default) : this(source, line)
+ {
+ if (output != null) Result = new Output(output);
+ }
+
+ ///
+ protected Activity(Output? output, string? source = default, int? line = default) : this(source, line)
+ {
+ Result = output;
+ }
+
+ ///
+ /// The result of the activity.
+ ///
+ public Output? Result { get; set; }
+
+ Output? IActivityWithResult.Result
+ {
+ get => Result;
+ set => Result = (Output?)value;
+ }
+}
\ No newline at end of file
diff --git a/src/modules/Elsa.Workflows.Core/Models/CodeActivity.cs b/src/modules/Elsa.Workflows.Core/Models/CodeActivity.cs
index 3e600fd45..b9bd7f356 100644
--- a/src/modules/Elsa.Workflows.Core/Models/CodeActivity.cs
+++ b/src/modules/Elsa.Workflows.Core/Models/CodeActivity.cs
@@ -96,37 +96,4 @@ public abstract class CodeActivity : CodeActivity, IActivityWithResult
get => Result;
set => Result = (Output?)value;
}
-}
-
-///
-/// Base class for custom activities that return a result.
-///
-public abstract class Activity : Activity
-{
- ///
- protected Activity(string? source = default, int? line = default) : base(source, line)
- {
- }
-
- ///
- protected Activity(string activityType, int version = 1, string? source = default, int? line = default) : base(activityType, version, source, line)
- {
- }
-
- ///
- protected Activity(MemoryBlockReference? output, string? source = default, int? line = default) : this(source, line)
- {
- if (output != null) Result = new Output(output);
- }
-
- ///
- protected Activity(Output? output, string? source = default, int? line = default) : this(source, line)
- {
- Result = output;
- }
-
- ///
- /// The result of the activity.
- ///
- public Output? Result { get; set; }
}
\ No newline at end of file