diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index f7c176e..508b46a 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -12,6 +12,7 @@
+
diff --git a/src/Mimic/Mimic.csproj b/src/Mimic/Mimic.csproj
index bd4c2c3..dd28051 100644
--- a/src/Mimic/Mimic.csproj
+++ b/src/Mimic/Mimic.csproj
@@ -11,6 +11,10 @@
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/Mimic/PublicAPI.Shipped.txt b/src/Mimic/PublicAPI.Shipped.txt
new file mode 100644
index 0000000..32dc474
--- /dev/null
+++ b/src/Mimic/PublicAPI.Shipped.txt
@@ -0,0 +1,277 @@
+#nullable enable
+
+Mimic.Arg
+Mimic.Arg.Ref
+Mimic.CallCount
+Mimic.CallCount.CallCount() -> void
+Mimic.CallCount.Equals(Mimic.CallCount other) -> bool
+Mimic.CallCount.Validate(int count) -> bool
+Mimic.DelayableExtensions
+Mimic.Exceptions.MimicException
+Mimic.Exceptions.MimicException.MimicException(Mimic.Exceptions.Reason reason, string? message) -> void
+Mimic.Exceptions.MimicException.MimicException(Mimic.Exceptions.Reason reason, string? message, System.Exception? innerException) -> void
+Mimic.Exceptions.MimicException.Reason.get -> Mimic.Exceptions.Reason
+Mimic.Exceptions.Reason
+Mimic.Exceptions.Reason.ExpectationFailed = 4 -> Mimic.Exceptions.Reason
+Mimic.Exceptions.Reason.IncompatibleMimicType = 2 -> Mimic.Exceptions.Reason
+Mimic.Exceptions.Reason.Unspecified = 0 -> Mimic.Exceptions.Reason
+Mimic.Exceptions.Reason.UnsupportedExpression = 3 -> Mimic.Exceptions.Reason
+Mimic.Exceptions.Reason.UsageError = 1 -> Mimic.Exceptions.Reason
+Mimic.Generic
+Mimic.Generic.AnyReferenceType
+Mimic.Generic.AnyReferenceType.AnyReferenceType() -> void
+Mimic.Generic.AnyReferenceType.Matches(System.Type! genericType) -> bool
+Mimic.Generic.AnyType
+Mimic.Generic.AnyType.AnyType() -> void
+Mimic.Generic.AnyType.Matches(System.Type! genericType) -> bool
+Mimic.Generic.AnyValueType
+Mimic.Generic.AnyValueType.AnyValueType() -> void
+Mimic.Generic.AnyValueType.Matches(System.Type! genericType) -> bool
+Mimic.Generic.AssignableFromType
+Mimic.Generic.AssignableFromType.AssignableFromType() -> void
+Mimic.Generic.AssignableFromType.Matches(System.Type! genericType) -> bool
+Mimic.Generic.Generic() -> void
+Mimic.ICallback
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Delegate! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Delegate! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ICallbackResult
+Mimic.ICallbackResult
+Mimic.IConditionalSetup
+Mimic.IConditionalSetup.Setup(System.Linq.Expressions.Expression!>! expression) -> Mimic.ISetup!
+Mimic.IConditionalSetup.Setup(System.Linq.Expressions.Expression!>! expression) -> Mimic.ISetup!
+Mimic.IConditionalSetup.SetupGet(System.Linq.Expressions.Expression!>! expression) -> Mimic.IGetterSetup!
+Mimic.IConditionalSetup.SetupSet(System.Action! setterExpression) -> Mimic.ISetup!
+Mimic.IConditionalSetup.SetupSet(System.Action! setterExpression) -> Mimic.ISetterSetup!
+Mimic.IDelayable
+Mimic.IDelayable.WithDelay(System.Func! delayFunction) -> Mimic.IDelayableResult!
+Mimic.IDelayable.WithDelay(System.TimeSpan delay) -> Mimic.IDelayableResult!
+Mimic.IDelayableResult
+Mimic.IExpected
+Mimic.IExpected.Expected() -> void
+Mimic.IFluent
+Mimic.IFluent.Equals(object! obj) -> bool
+Mimic.IFluent.GetHashCode() -> int
+Mimic.IFluent.GetType() -> System.Type!
+Mimic.IFluent.ToString() -> string!
+Mimic.IGenericMatcher
+Mimic.IGenericMatcher.Matches(System.Type! genericType) -> bool
+Mimic.IGetterCallback
+Mimic.IGetterCallback.Callback(System.Action! callback) -> Mimic.IGetterCallbackResult!
+Mimic.IGetterCallbackResult
+Mimic.IGetterReturns
+Mimic.IGetterReturns.Returns(System.Func! valueFunction) -> Mimic.IReturnsResult!
+Mimic.IGetterReturns.Returns(TProperty? value) -> Mimic.IReturnsResult!
+Mimic.IGetterSetup
+Mimic.ILimitable
+Mimic.ILimitable.Limit(int executionLimit = 1) -> Mimic.IExpected!
+Mimic.IMimicked
+Mimic.IMimicked.Mimic.get -> Mimic.Mimic!
+Mimic.IProceed
+Mimic.IProceed.Proceed() -> Mimic.IProceedResult!
+Mimic.IProceedResult
+Mimic.IReturns
+Mimic.IReturns.Proceed() -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(TResult? value) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns.Returns(System.Func! valueFunction) -> TNext
+Mimic.IReturns
+Mimic.IReturnsResult
+Mimic.ISequenceDelayable
+Mimic.ISequenceDelayable.WithDelay(System.Func! delayFunction) -> Mimic.IExpected!
+Mimic.ISequenceDelayable.WithDelay(System.TimeSpan delay) -> Mimic.IExpected!
+Mimic.ISequenceSetup
+Mimic.ISequenceSetup.Next() -> Mimic.ISequenceSetup!
+Mimic.ISequenceSetup.Proceed() -> Mimic.ISequenceSetup!
+Mimic.ISequenceSetup
+Mimic.ISetterCallback
+Mimic.ISetterCallback.Callback(System.Action! callback) -> Mimic.ICallbackResult!
+Mimic.ISetterSetup
+Mimic.ISetup
+Mimic.ISetup.AsSequence() -> Mimic.ISequenceSetup!
+Mimic.ISetup
+Mimic.ISetup.AsSequence() -> Mimic.ISequenceSetup!
+Mimic.IThrows
+Mimic.IThrows
+Mimic.IThrows.Throws(System.Delegate! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Exception! exception) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws(System.Func! exceptionFactory) -> TNext
+Mimic.IThrows.Throws