diff --git a/Directory.Packages.props b/Directory.Packages.props
index d0c048ddb..7026a0bbf 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -7,6 +7,7 @@
     
     
     
+    
   
   
     
diff --git a/System.IO.Abstractions.sln b/System.IO.Abstractions.sln
index cc1d4ec7a..3ec9ec636 100644
--- a/System.IO.Abstractions.sln
+++ b/System.IO.Abstractions.sln
@@ -90,6 +90,7 @@ Global
 		{919888D2-E37D-40E7-8AD0-600F9429316D} = {BCEC61BD-4941-41EC-975A-ACEFC7AC1780}
 		{2BE9161B-A3F3-4511-81DB-DB1DCB6375C9} = {BBF7AD8D-5522-48C0-A906-00CBB72308A0}
 		{D905E09D-6DC3-4F7C-8E83-82FADAE2C9E5} = {2BE9161B-A3F3-4511-81DB-DB1DCB6375C9}
+		{1B8388D2-58A7-47B8-89EC-C5A94A0FEED5} = {C078E0B6-9747-475F-A999-B9E775DF6643}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {8885C59C-F6A0-4C2F-A3BC-B720E9BD161F}
diff --git a/src/TestableIO.System.IO.Abstractions.TestingHelpers/TestableIO.System.IO.Abstractions.TestingHelpers.csproj b/src/TestableIO.System.IO.Abstractions.TestingHelpers/TestableIO.System.IO.Abstractions.TestingHelpers.csproj
index 60955347d..054dc6360 100644
--- a/src/TestableIO.System.IO.Abstractions.TestingHelpers/TestableIO.System.IO.Abstractions.TestingHelpers.csproj
+++ b/src/TestableIO.System.IO.Abstractions.TestingHelpers/TestableIO.System.IO.Abstractions.TestingHelpers.csproj
@@ -7,7 +7,7 @@
         icon_256x256.png
     
     
-        
+        
         
     
     
diff --git a/src/TestableIO.System.IO.Abstractions.Wrappers/TestableIO.System.IO.Abstractions.Wrappers.csproj b/src/TestableIO.System.IO.Abstractions.Wrappers/TestableIO.System.IO.Abstractions.Wrappers.csproj
index e929acf0c..70fbb0779 100644
--- a/src/TestableIO.System.IO.Abstractions.Wrappers/TestableIO.System.IO.Abstractions.Wrappers.csproj
+++ b/src/TestableIO.System.IO.Abstractions.Wrappers/TestableIO.System.IO.Abstractions.Wrappers.csproj
@@ -19,6 +19,6 @@
     
   
   
-    
+    
   
 
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/FileSystemStream.cs b/src/TestableIO.System.IO.Abstractions/FileSystemStream.cs
deleted file mode 100644
index c8553e740..000000000
--- a/src/TestableIO.System.IO.Abstractions/FileSystemStream.cs
+++ /dev/null
@@ -1,269 +0,0 @@
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    ///     Wrapper around a  which is used as a replacement
-    ///     for a . As such it implements the same
-    ///     properties and methods as a .
-    /// 
-    public abstract class FileSystemStream : Stream
-    {
-        /// 
-        public override bool CanRead
-            => _stream.CanRead;
-
-        /// 
-        public override bool CanSeek
-            => _stream.CanSeek;
-
-        /// 
-        public override bool CanTimeout
-            => _stream.CanTimeout;
-
-        /// 
-        public override bool CanWrite
-            => _stream.CanWrite;
-
-        /// 
-        public virtual bool IsAsync { get; }
-
-        /// 
-        public override long Length
-            => _stream.Length;
-
-        /// 
-        public virtual string Name { get; }
-
-        /// 
-        public override long Position
-        {
-            get => _stream.Position;
-            set => _stream.Position = value;
-        }
-
-        /// 
-        public override int ReadTimeout
-        {
-            get => _stream.ReadTimeout;
-            set => _stream.ReadTimeout = value;
-        }
-
-        /// 
-        public override int WriteTimeout
-        {
-            get => _stream.WriteTimeout;
-            set => _stream.WriteTimeout = value;
-        }
-
-        private readonly Stream _stream;
-
-        /// 
-        ///     Initializes a new instance of .
-        /// 
-        /// The wrapped .
-        /// The  of the stream.
-        /// 
-        ///     The  flag, indicating if the  was
-        ///     opened asynchronously or synchronously.
-        /// 
-        protected FileSystemStream(Stream stream, string path, bool isAsync)
-        {
-            if (path is null)
-            {
-                throw new ArgumentNullException(nameof(path), "Path cannot be null.");
-            }
-
-            if (path.Length == 0)
-            {
-                throw new ArgumentException("Empty path name is not legal.", nameof(path));
-            }
-
-            _stream = stream;
-            Name = path;
-            IsAsync = isAsync;
-        }
-
-        /// 
-        public override IAsyncResult BeginRead(byte[] buffer,
-            int offset,
-            int count,
-            AsyncCallback? callback,
-            object? state)
-            => _stream.BeginRead(buffer, offset, count, callback, state);
-
-        /// 
-        public override IAsyncResult BeginWrite(byte[] buffer,
-            int offset,
-            int count,
-            AsyncCallback? callback,
-            object? state)
-            => _stream.BeginWrite(buffer, offset, count, callback, state);
-
-        /// 
-        public override void Close()
-        {
-            base.Close();
-            _stream.Close();
-        }
-
-        /// 
-#if NETSTANDARD2_0 || NET462
-	    public new virtual void CopyTo(Stream destination, int bufferSize)
-#else
-        public override void CopyTo(Stream destination, int bufferSize)
-#endif
-        {
-            ValidateCopyToArguments(this, destination, bufferSize);
-            _stream.CopyTo(destination, bufferSize);
-        }
-
-        /// 
-        public override Task CopyToAsync(Stream destination,
-            int bufferSize,
-            CancellationToken cancellationToken)
-        {
-            ValidateCopyToArguments(this, destination, bufferSize);
-            return _stream.CopyToAsync(destination, bufferSize, cancellationToken);
-        }
-
-        /// 
-        public override int EndRead(IAsyncResult asyncResult)
-            => _stream.EndRead(asyncResult);
-
-        /// 
-        public override void EndWrite(IAsyncResult asyncResult)
-            => _stream.EndWrite(asyncResult);
-
-        /// 
-        public override void Flush()
-            => _stream.Flush();
-
-        /// 
-        public virtual void Flush(bool flushToDisk)
-            => _stream.Flush();
-
-        /// 
-        public override Task FlushAsync(CancellationToken cancellationToken)
-            => _stream.FlushAsync(cancellationToken);
-
-        /// 
-        public override int Read(byte[] buffer, int offset, int count)
-            => _stream.Read(buffer, offset, count);
-
-#if FEATURE_SPAN
-	    /// 
-	    public override int Read(Span buffer)
-		    => _stream.Read(buffer);
-#endif
-
-        /// 
-        public override Task ReadAsync(byte[] buffer,
-            int offset,
-            int count,
-            CancellationToken cancellationToken)
-            => _stream.ReadAsync(buffer, offset, count, cancellationToken);
-
-#if FEATURE_SPAN
-	    /// 
-	    public override ValueTask ReadAsync(Memory buffer,
-	                                             CancellationToken cancellationToken = new())
-		    => _stream.ReadAsync(buffer, cancellationToken);
-#endif
-
-        /// 
-        public override int ReadByte()
-            => _stream.ReadByte();
-
-        /// 
-        public override long Seek(long offset, SeekOrigin origin)
-            => _stream.Seek(offset, origin);
-
-        /// 
-        public override void SetLength(long value)
-            => _stream.SetLength(value);
-
-        /// 
-        public override string? ToString()
-            => _stream.ToString();
-
-        /// 
-        public override void Write(byte[] buffer, int offset, int count)
-            => _stream.Write(buffer, offset, count);
-
-#if FEATURE_SPAN
-	    /// 
-	    public override void Write(ReadOnlySpan buffer)
-		    => _stream.Write(buffer);
-#endif
-
-        /// 
-        public override Task WriteAsync(byte[] buffer,
-            int offset,
-            int count,
-            CancellationToken cancellationToken)
-            => _stream.WriteAsync(buffer, offset, count, cancellationToken);
-
-#if FEATURE_SPAN
-	    /// 
-	    public override ValueTask WriteAsync(ReadOnlyMemory buffer,
-	                                         CancellationToken cancellationToken = new())
-		    => _stream.WriteAsync(buffer, cancellationToken);
-#endif
-
-        /// 
-        public override void WriteByte(byte value)
-            => _stream.WriteByte(value);
-
-        /// 
-        protected override void Dispose(bool disposing)
-        {
-            _stream.Dispose();
-            base.Dispose(disposing);
-        }
-
-        /// 
-        /// Allows to cast the internal Stream to a FileStream
-        /// 
-        /// The FileSystemStream to cast
-        /// 
-        public static explicit operator FileStream(FileSystemStream fsStream)
-        {
-            return (FileStream) fsStream._stream;
-        }
-
-        private static void ValidateCopyToArguments(Stream source, Stream destination, int bufferSize)
-        {
-            if (destination == null)
-            {
-                throw new ArgumentNullException(nameof(destination), "Destination cannot be null.");
-            }
-
-            if (bufferSize <= 0)
-            {
-                throw new ArgumentOutOfRangeException(nameof(bufferSize), "Buffer size must be greater than zero.");
-            }
-
-            if (!destination.CanWrite)
-            {
-                if (destination.CanRead)
-                {
-                    throw new NotSupportedException("Stream does not support writing.");
-                }
-
-                throw new ObjectDisposedException("Cannot access a closed Stream.");
-            }
-            
-            if (!source.CanRead)
-            {
-                if (source.CanWrite)
-                {
-                    throw new NotSupportedException("Stream does not support reading.");
-                }
-
-                throw new ObjectDisposedException("Cannot access a closed Stream.");
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IDirectory.cs b/src/TestableIO.System.IO.Abstractions/IDirectory.cs
deleted file mode 100644
index a922c4be5..000000000
--- a/src/TestableIO.System.IO.Abstractions/IDirectory.cs
+++ /dev/null
@@ -1,181 +0,0 @@
-using System.Collections.Generic;
-using System.Diagnostics.CodeAnalysis;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    /// Abstractions for .
-    /// 
-    public interface IDirectory : IFileSystemEntity
-    {
-        /// 
-        IDirectoryInfo CreateDirectory(string path);
-
-#if FEATURE_UNIX_FILE_MODE
-	/// 
-	IDirectoryInfo CreateDirectory(string path, UnixFileMode unixCreateMode);
-#endif
-
-#if FEATURE_CREATE_SYMBOLIC_LINK
-        /// 
-        IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget);
-#endif
-
-#if FEATURE_CREATE_TEMP_SUBDIRECTORY
-	/// 
-	IDirectoryInfo CreateTempSubdirectory(string? prefix = null);
-#endif
-
-        /// 
-        void Delete(string path);
-
-        /// 
-        void Delete(string path, bool recursive);
-
-        /// 
-        IEnumerable EnumerateDirectories(string path);
-
-        /// 
-        IEnumerable EnumerateDirectories(string path, string searchPattern);
-
-        /// 
-        IEnumerable EnumerateDirectories(string path, string searchPattern, SearchOption searchOption);
-
-#if FEATURE_ENUMERATION_OPTIONS
-        /// 
-        IEnumerable EnumerateDirectories(string path, string searchPattern, EnumerationOptions enumerationOptions);
-#endif
-        
-        /// 
-        IEnumerable EnumerateFiles(string path);
-
-        /// 
-        IEnumerable EnumerateFiles(string path, string searchPattern);
-
-        /// 
-        IEnumerable EnumerateFiles(string path, string searchPattern, SearchOption searchOption);
-
-#if FEATURE_ENUMERATION_OPTIONS
-        /// 
-        IEnumerable EnumerateFiles(string path, string searchPattern, EnumerationOptions enumerationOptions);
-#endif
-
-        /// 
-        IEnumerable EnumerateFileSystemEntries(string path);
-
-        /// 
-        IEnumerable EnumerateFileSystemEntries(string path, string searchPattern);
-
-        /// 
-        IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, SearchOption searchOption);
-
-#if FEATURE_ENUMERATION_OPTIONS
-        /// 
-        IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, EnumerationOptions enumerationOptions);
-#endif
-
-        /// 
-        bool Exists([NotNullWhen(true)] string? path);
-        
-        /// 
-        DateTime GetCreationTime(string path);
-
-        /// 
-        DateTime GetCreationTimeUtc(string path);
-
-        /// 
-        string GetCurrentDirectory();
-
-        /// 
-        string[] GetDirectories(string path);
-
-        /// 
-        string[] GetDirectories(string path, string searchPattern);
-
-        /// 
-        string[] GetDirectories(string path, string searchPattern, SearchOption searchOption);
-
-#if FEATURE_ENUMERATION_OPTIONS
-        /// 
-        string[] GetDirectories(string path, string searchPattern, EnumerationOptions enumerationOptions);
-#endif
-
-        /// 
-        string GetDirectoryRoot(string path);
-
-        /// 
-        string[] GetFiles(string path);
-
-        /// 
-        string[] GetFiles(string path, string searchPattern);
-
-        /// 
-        string[] GetFiles(string path, string searchPattern, SearchOption searchOption);
-
-#if FEATURE_ENUMERATION_OPTIONS
-        /// 
-        string[] GetFiles(string path, string searchPattern, EnumerationOptions enumerationOptions);
-#endif
-
-        /// 
-        string[] GetFileSystemEntries(string path);
-
-        /// 
-        string[] GetFileSystemEntries(string path, string searchPattern);
-
-        /// 
-        string[] GetFileSystemEntries(string path, string searchPattern, SearchOption searchOption);
-
-#if FEATURE_ENUMERATION_OPTIONS
-        /// 
-        string[] GetFileSystemEntries(string path, string searchPattern, EnumerationOptions enumerationOptions);
-#endif
-
-        /// 
-        DateTime GetLastAccessTime(string path);
-
-        /// 
-        DateTime GetLastAccessTimeUtc(string path);
-
-        /// 
-        DateTime GetLastWriteTime(string path);
-
-        /// 
-        DateTime GetLastWriteTimeUtc(string path);
-
-        /// 
-        string[] GetLogicalDrives();
-
-        /// 
-        IDirectoryInfo? GetParent(string path);
-
-        /// 
-        void Move(string sourceDirName, string destDirName);
-
-#if FEATURE_CREATE_SYMBOLIC_LINK
-        /// 
-        IFileSystemInfo? ResolveLinkTarget(string linkPath, bool returnFinalTarget);
-#endif
-
-        /// 
-        void SetCreationTime(string path, DateTime creationTime);
-
-        /// 
-        void SetCreationTimeUtc(string path, DateTime creationTimeUtc);
-
-        /// 
-        void SetCurrentDirectory(string path);
-
-        /// 
-        void SetLastAccessTime(string path, DateTime lastAccessTime);
-
-        /// 
-        void SetLastAccessTimeUtc(string path, DateTime lastAccessTimeUtc);
-
-        /// 
-        void SetLastWriteTime(string path, DateTime lastWriteTime);
-
-        /// 
-        void SetLastWriteTimeUtc(string path, DateTime lastWriteTimeUtc);
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IDirectoryInfo.cs b/src/TestableIO.System.IO.Abstractions/IDirectoryInfo.cs
deleted file mode 100644
index 93fa0f2ab..000000000
--- a/src/TestableIO.System.IO.Abstractions/IDirectoryInfo.cs
+++ /dev/null
@@ -1,110 +0,0 @@
-using System.Collections.Generic;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    public interface IDirectoryInfo : IFileSystemInfo
-    {
-        /// 
-        IDirectoryInfo? Parent { get; }
-
-        /// 
-        IDirectoryInfo Root { get; }
-
-        /// 
-        void Create();
-
-        /// 
-        IDirectoryInfo CreateSubdirectory(string path);
-
-        /// 
-        void Delete(bool recursive);
-
-        /// 
-        IEnumerable EnumerateDirectories();
-
-        /// 
-        IEnumerable EnumerateDirectories(string searchPattern);
-
-        /// 
-        IEnumerable EnumerateDirectories(string searchPattern, SearchOption searchOption);
-
-#if FEATURE_ENUMERATION_OPTIONS
-        /// 
-        IEnumerable EnumerateDirectories(string searchPattern, EnumerationOptions enumerationOptions);
-#endif
-
-        /// 
-        IEnumerable EnumerateFiles();
-
-        /// 
-        IEnumerable EnumerateFiles(string searchPattern);
-
-        /// 
-        IEnumerable EnumerateFiles(string searchPattern, SearchOption searchOption);
-
-#if FEATURE_ENUMERATION_OPTIONS
-        /// 
-        IEnumerable EnumerateFiles(string searchPattern, EnumerationOptions enumerationOptions);
-#endif
-
-        /// 
-        IEnumerable EnumerateFileSystemInfos();
-
-        /// 
-        IEnumerable EnumerateFileSystemInfos(string searchPattern);
-
-        /// 
-        IEnumerable EnumerateFileSystemInfos(string searchPattern, SearchOption searchOption);
-
-#if FEATURE_ENUMERATION_OPTIONS
-        /// 
-        IEnumerable EnumerateFileSystemInfos(string searchPattern, EnumerationOptions enumerationOptions);
-#endif
-
-        /// 
-        IDirectoryInfo[] GetDirectories();
-
-        /// 
-        IDirectoryInfo[] GetDirectories(string searchPattern);
-
-        /// 
-        IDirectoryInfo[] GetDirectories(string searchPattern, SearchOption searchOption);
-
-#if FEATURE_ENUMERATION_OPTIONS
-        /// 
-        IDirectoryInfo[] GetDirectories(string searchPattern, EnumerationOptions enumerationOptions);
-#endif
-
-        /// 
-        IFileInfo[] GetFiles();
-
-        /// 
-        IFileInfo[] GetFiles(string searchPattern);
-
-        /// 
-        IFileInfo[] GetFiles(string searchPattern, SearchOption searchOption);
-
-#if FEATURE_ENUMERATION_OPTIONS
-        /// 
-        IFileInfo[] GetFiles(string searchPattern, EnumerationOptions enumerationOptions);
-#endif
-
-        /// 
-        IFileSystemInfo[] GetFileSystemInfos();
-
-        /// 
-        IFileSystemInfo[] GetFileSystemInfos(string searchPattern);
-
-        /// 
-        IFileSystemInfo[] GetFileSystemInfos(string searchPattern, SearchOption searchOption);
-
-#if FEATURE_ENUMERATION_OPTIONS
-        /// 
-        IFileSystemInfo[] GetFileSystemInfos(string searchPattern, EnumerationOptions enumerationOptions);
-#endif
-
-        /// 
-        void MoveTo(string destDirName);
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IDirectoryInfoFactory.cs b/src/TestableIO.System.IO.Abstractions/IDirectoryInfoFactory.cs
deleted file mode 100644
index 988bf53d0..000000000
--- a/src/TestableIO.System.IO.Abstractions/IDirectoryInfoFactory.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System.Diagnostics.CodeAnalysis;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    /// A factory for the creation of wrappers for  in a .
-    /// 
-    public interface IDirectoryInfoFactory : IFileSystemEntity
-    {
-        /// 
-        /// Initializes a new instance of a wrapper for  which implements .
-        /// 
-        /// A string specifying the path on which to create the .
-        IDirectoryInfo New(string path);
-
-        /// 
-        /// Wraps the  in a wrapper for  which implements .
-        /// 
-        [return: NotNullIfNotNull("directoryInfo")]
-        IDirectoryInfo? Wrap(DirectoryInfo? directoryInfo);
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IDriveInfo.cs b/src/TestableIO.System.IO.Abstractions/IDriveInfo.cs
deleted file mode 100644
index 4b13684aa..000000000
--- a/src/TestableIO.System.IO.Abstractions/IDriveInfo.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using System.Diagnostics.CodeAnalysis;
-using System.Runtime.Versioning;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    public interface IDriveInfo : IFileSystemEntity
-    {
-        /// 
-        long AvailableFreeSpace { get; }
-
-        /// 
-        string DriveFormat { get; }
-
-        /// 
-        DriveType DriveType { get; }
-
-        /// 
-        bool IsReady { get; }
-
-        /// 
-        string Name { get; }
-
-        /// 
-        IDirectoryInfo RootDirectory { get; }
-
-        /// 
-        long TotalFreeSpace { get; }
-
-        /// 
-        long TotalSize { get; }
-
-        /// 
-        [AllowNull]
-        string VolumeLabel
-        {
-            get;
-            [SupportedOSPlatform("windows")] set;
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IDriveInfoFactory.cs b/src/TestableIO.System.IO.Abstractions/IDriveInfoFactory.cs
deleted file mode 100644
index 080a9f57e..000000000
--- a/src/TestableIO.System.IO.Abstractions/IDriveInfoFactory.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using System.Diagnostics.CodeAnalysis;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    /// A factory for the creation of wrappers for  in a .
-    /// 
-    public interface IDriveInfoFactory : IFileSystemEntity
-    {
-        /// 
-        /// Retrieves the drive names of all logical drives on a computer.
-        /// 
-        /// An array of type  that represents the logical drives on a computer.
-        IDriveInfo[] GetDrives();
-
-        /// 
-        /// Provides access to the information on the specified drive.
-        /// 
-        /// 
-        /// A valid drive path or drive letter.
-        /// This can be either uppercase or lowercase, 'a' to 'z'.
-        /// A  value is not valid.
-        /// 
-        IDriveInfo New(string driveName);
-
-        /// 
-        /// Wraps the  in a wrapper for  which implements .
-        /// 
-        [return: NotNullIfNotNull("driveInfo")]
-        IDriveInfo? Wrap(DriveInfo? driveInfo);
-    }
-}
diff --git a/src/TestableIO.System.IO.Abstractions/IFile.Async.cs b/src/TestableIO.System.IO.Abstractions/IFile.Async.cs
deleted file mode 100644
index 0571d71dc..000000000
--- a/src/TestableIO.System.IO.Abstractions/IFile.Async.cs
+++ /dev/null
@@ -1,143 +0,0 @@
-#if FEATURE_ASYNC_FILE
-
-using System.Collections.Generic;
-using System.Text;
-using System.Threading.Tasks;
-using System.Threading;
-
-namespace System.IO.Abstractions
-{
-    partial interface IFile
-    {
-#if FEATURE_FILE_SPAN
-        /// 
-        Task AppendAllBytesAsync(string path,
-            byte[] bytes,
-            CancellationToken cancellationToken = default);
-        
-        /// 
-        Task AppendAllBytesAsync(string path,
-            ReadOnlyMemory bytes,
-            CancellationToken cancellationToken = default);
-#endif
-        
-        /// 
-        Task AppendAllLinesAsync(string path,
-            IEnumerable contents,
-            CancellationToken cancellationToken = default);
-
-        /// 
-        Task AppendAllLinesAsync(string path,
-            IEnumerable contents,
-            Encoding encoding,
-            CancellationToken cancellationToken = default);
-
-        /// 
-        Task AppendAllTextAsync(string path,
-            string? contents,
-            CancellationToken cancellationToken = default);
-
-        /// 
-        Task AppendAllTextAsync(string path,
-            string? contents,
-            Encoding encoding,
-            CancellationToken cancellationToken = default);
-
-#if FEATURE_FILE_SPAN
-        /// 
-        Task AppendAllTextAsync(string path,
-            ReadOnlyMemory contents,
-            CancellationToken cancellationToken = default);
-        
-        /// 
-        Task AppendAllTextAsync(string path,
-            ReadOnlyMemory contents,
-            Encoding encoding,
-            CancellationToken cancellationToken = default);
-#endif
-        
-        /// 
-        Task ReadAllBytesAsync(string path,
-            CancellationToken cancellationToken = default);
-
-        /// 
-        Task ReadAllLinesAsync(string path,
-            CancellationToken cancellationToken = default);
-
-        /// 
-        Task ReadAllLinesAsync(string path,
-            Encoding encoding,
-            CancellationToken cancellationToken = default);
-
-        /// 
-        Task ReadAllTextAsync(string path,
-            CancellationToken cancellationToken = default);
-
-        /// 
-        Task ReadAllTextAsync(string path,
-            Encoding encoding,
-            CancellationToken cancellationToken = default);
-
-#if FEATURE_READ_LINES_ASYNC
-        /// 
-        IAsyncEnumerable ReadLinesAsync(string path,
-            CancellationToken cancellationToken =
-                default);
-
-        /// 
-        IAsyncEnumerable ReadLinesAsync(string path, Encoding encoding,
-            CancellationToken cancellationToken =
-                default);
-#endif
-
-
-        /// 
-        Task WriteAllBytesAsync(string path,
-            byte[] bytes,
-            CancellationToken cancellationToken = default);
-
-#if FEATURE_FILE_SPAN
-        /// 
-        Task WriteAllBytesAsync(string path,
-            ReadOnlyMemory bytes,
-            CancellationToken cancellationToken = default);
-#endif
-
-        /// 
-        Task WriteAllLinesAsync(string path,
-            IEnumerable contents,
-            CancellationToken cancellationToken = default);
-
-        /// 
-        Task WriteAllLinesAsync(string path,
-            IEnumerable contents,
-            Encoding encoding,
-            CancellationToken cancellationToken = default);
-
-        /// 
-        Task WriteAllTextAsync(string path,
-            string? contents,
-            CancellationToken cancellationToken = default);
-
-        /// 
-        Task WriteAllTextAsync(string path,
-            string? contents,
-            Encoding encoding,
-            CancellationToken cancellationToken = default);
-
-#if FEATURE_FILE_SPAN
-        /// 
-        Task WriteAllTextAsync(string path,
-            ReadOnlyMemory contents,
-            CancellationToken cancellationToken = default);
-        
-        /// 
-        Task WriteAllTextAsync(string path,
-            ReadOnlyMemory contents,
-            Encoding encoding,
-            CancellationToken cancellationToken = default);
-#endif
-    }
-}
-
-#endif
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IFile.cs b/src/TestableIO.System.IO.Abstractions/IFile.cs
deleted file mode 100644
index e7b029ac1..000000000
--- a/src/TestableIO.System.IO.Abstractions/IFile.cs
+++ /dev/null
@@ -1,333 +0,0 @@
-using Microsoft.Win32.SafeHandles;
-using System.Collections.Generic;
-using System.Diagnostics.CodeAnalysis;
-using System.Runtime.Versioning;
-using System.Text;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    /// Abstractions for .
-    /// 
-#if FEATURE_ASYNC_FILE
-    public partial interface IFile : IFileSystemEntity
-#else
-    public interface IFile : IFileSystemEntity
-#endif
-    {
-#if FEATURE_FILE_SPAN
-        /// 
-        void AppendAllBytes(string path,
-            byte[] bytes);
-        
-        /// 
-        void AppendAllBytes(string path,
-            ReadOnlySpan bytes);
-#endif
-        
-        /// 
-        void AppendAllLines(string path, IEnumerable contents);
-
-        /// 
-        void AppendAllLines(string path, IEnumerable contents, Encoding encoding);
-
-        /// 
-        void AppendAllText(string path, string? contents);
-
-        /// 
-        void AppendAllText(string path, string? contents, Encoding encoding);
-
-#if FEATURE_FILE_SPAN
-        /// 
-        void AppendAllText(string path,
-            ReadOnlySpan contents);
-        
-        /// 
-        void AppendAllText(string path,
-            ReadOnlySpan contents,
-            Encoding encoding);
-#endif
-
-        /// 
-        StreamWriter AppendText(string path);
-
-        /// 
-        void Copy(string sourceFileName, string destFileName);
-
-        /// 
-        void Copy(string sourceFileName, string destFileName, bool overwrite);
-
-        /// 
-        FileSystemStream Create(string path);
-
-        /// 
-        FileSystemStream Create(string path, int bufferSize);
-
-        /// 
-        FileSystemStream Create(string path, int bufferSize, FileOptions options);
-
-#if FEATURE_CREATE_SYMBOLIC_LINK
-        /// 
-        IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget);
-#endif
-        /// 
-        StreamWriter CreateText(string path);
-
-        /// 
-        [SupportedOSPlatform("windows")]
-        void Decrypt(string path);
-
-        /// 
-        void Delete(string path);
-
-        /// 
-        [SupportedOSPlatform("windows")]
-        void Encrypt(string path);
-        
-        /// 
-        bool Exists([NotNullWhen(true)] string? path);
-
-        /// 
-        FileAttributes GetAttributes(string path);
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        FileAttributes GetAttributes(SafeFileHandle fileHandle);
-#endif
-
-        /// 
-        DateTime GetCreationTime(string path);
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        DateTime GetCreationTime(SafeFileHandle fileHandle);
-#endif
-
-        /// 
-        DateTime GetCreationTimeUtc(string path);
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        DateTime GetCreationTimeUtc(SafeFileHandle fileHandle);
-#endif
-
-        /// 
-        DateTime GetLastAccessTime(string path);
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        DateTime GetLastAccessTime(SafeFileHandle fileHandle);
-#endif
-
-        /// 
-        DateTime GetLastAccessTimeUtc(string path);
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        DateTime GetLastAccessTimeUtc(SafeFileHandle fileHandle);
-#endif
-
-        /// 
-        DateTime GetLastWriteTime(string path);
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        DateTime GetLastWriteTime(SafeFileHandle fileHandle);
-#endif
-
-        /// 
-        DateTime GetLastWriteTimeUtc(string path);
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        DateTime GetLastWriteTimeUtc(SafeFileHandle fileHandle);
-#endif
-
-#if FEATURE_UNIX_FILE_MODE
-        /// 
-        [UnsupportedOSPlatform("windows")]
-        UnixFileMode GetUnixFileMode(string path);
-#endif
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        [UnsupportedOSPlatform("windows")]
-        UnixFileMode GetUnixFileMode(SafeFileHandle fileHandle);
-#endif
-
-        /// 
-        void Move(string sourceFileName, string destFileName);
-
-#if FEATURE_FILE_MOVE_WITH_OVERWRITE
-        /// 
-        void Move(string sourceFileName, string destFileName, bool overwrite);
-#endif
-
-        /// 
-        FileSystemStream Open(string path, FileMode mode);
-
-        /// 
-        FileSystemStream Open(string path, FileMode mode, FileAccess access);
-
-        /// 
-        FileSystemStream Open(string path, FileMode mode, FileAccess access,
-            FileShare share);
-
-#if FEATURE_FILESTREAM_OPTIONS
-        /// 
-        FileSystemStream Open(string path, FileStreamOptions options);
-#endif
-
-        /// 
-        FileSystemStream OpenRead(string path);
-
-        /// 
-        StreamReader OpenText(string path);
-
-        /// 
-        FileSystemStream OpenWrite(string path);
-
-        /// 
-        byte[] ReadAllBytes(string path);
-        
-        /// 
-        string[] ReadAllLines(string path);
-
-        /// 
-        string[] ReadAllLines(string path, Encoding encoding);
-
-        /// 
-        string ReadAllText(string path);
-
-        /// 
-        string ReadAllText(string path, Encoding encoding);
-
-
-        /// 
-        IEnumerable ReadLines(string path);
-
-        /// 
-        IEnumerable ReadLines(string path, Encoding encoding);
-
-        /// 
-        void Replace(string sourceFileName,
-            string destinationFileName,
-            string? destinationBackupFileName);
-
-        /// 
-        void Replace(string sourceFileName,
-            string destinationFileName,
-            string? destinationBackupFileName,
-            bool ignoreMetadataErrors);
-
-#if FEATURE_CREATE_SYMBOLIC_LINK
-        /// 
-        IFileSystemInfo? ResolveLinkTarget(string linkPath, bool returnFinalTarget);
-#endif
-        
-        /// 
-        void SetAttributes(string path, FileAttributes fileAttributes);
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        void SetAttributes(SafeFileHandle fileHandle, FileAttributes fileAttributes);
-#endif
-
-        /// 
-        void SetCreationTime(string path, DateTime creationTime);
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        void SetCreationTime(SafeFileHandle fileHandle, DateTime creationTime);
-#endif
-
-        /// 
-        void SetCreationTimeUtc(string path, DateTime creationTimeUtc);
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        void SetCreationTimeUtc(SafeFileHandle fileHandle, DateTime creationTimeUtc);
-#endif
-
-        /// 
-        void SetLastAccessTime(string path, DateTime lastAccessTime);
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        void SetLastAccessTime(SafeFileHandle fileHandle, DateTime lastAccessTime);
-#endif
-
-        /// 
-        void SetLastAccessTimeUtc(string path, DateTime lastAccessTimeUtc);
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        void SetLastAccessTimeUtc(SafeFileHandle fileHandle, DateTime lastAccessTimeUtc);
-#endif
-
-        /// 
-        void SetLastWriteTime(string path, DateTime lastWriteTime);
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        void SetLastWriteTime(SafeFileHandle fileHandle, DateTime lastWriteTime);
-#endif
-
-        /// 
-        void SetLastWriteTimeUtc(string path, DateTime lastWriteTimeUtc);
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        void SetLastWriteTimeUtc(SafeFileHandle fileHandle, DateTime lastWriteTimeUtc);
-#endif
-
-#if FEATURE_UNIX_FILE_MODE
-        /// 
-        [UnsupportedOSPlatform("windows")]
-        void SetUnixFileMode(string path, UnixFileMode mode);
-#endif
-
-#if FEATURE_FILE_ATTRIBUTES_VIA_HANDLE
-        /// 
-        [UnsupportedOSPlatform("windows")]
-        void SetUnixFileMode(SafeFileHandle fileHandle, UnixFileMode mode);
-#endif
-
-        /// 
-        void WriteAllBytes(string path, byte[] bytes);
-
-#if FEATURE_FILE_SPAN
-        /// 
-        void WriteAllBytes(string path,
-            ReadOnlySpan bytes);
-#endif
-
-        /// 
-        void WriteAllLines(string path, string[] contents);
-
-        /// 
-        void WriteAllLines(string path, IEnumerable contents);
-
-        /// 
-        void WriteAllLines(string path, string[] contents, Encoding encoding);
-
-        /// 
-        void WriteAllLines(string path, IEnumerable contents, Encoding encoding);
-
-        /// 
-        void WriteAllText(string path, string? contents);
-
-        /// 
-        void WriteAllText(string path, string? contents, Encoding encoding);
-
-#if FEATURE_FILE_SPAN
-        /// 
-        void WriteAllText(string path,
-            ReadOnlySpan contents);
-        
-        /// 
-        void WriteAllText(string path,
-            ReadOnlySpan contents,
-            Encoding encoding);
-#endif
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IFileInfo.cs b/src/TestableIO.System.IO.Abstractions/IFileInfo.cs
deleted file mode 100644
index 42e4cd5e6..000000000
--- a/src/TestableIO.System.IO.Abstractions/IFileInfo.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-using System.Runtime.Versioning;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    public interface IFileInfo : IFileSystemInfo
-    {
-        /// 
-        IDirectoryInfo? Directory { get; }
-
-        /// 
-        string? DirectoryName { get; }
-
-        /// 
-        bool IsReadOnly { get; set; }
-
-        /// 
-        long Length { get; }
-
-        /// 
-        public StreamWriter AppendText();
-
-        /// 
-        IFileInfo CopyTo(string destFileName);
-
-        /// 
-        IFileInfo CopyTo(string destFileName, bool overwrite);
-
-        /// 
-        FileSystemStream Create();
-
-        /// 
-        public StreamWriter CreateText();
-
-        /// 
-        [SupportedOSPlatform("windows")]
-        void Decrypt();
-
-        /// 
-        [SupportedOSPlatform("windows")]
-        void Encrypt();
-
-        /// 
-        void MoveTo(string destFileName);
-
-#if FEATURE_FILE_MOVE_WITH_OVERWRITE
-        /// 
-        void MoveTo(string destFileName, bool overwrite);
-#endif
-
-        /// 
-        FileSystemStream Open(FileMode mode);
-
-        /// 
-        FileSystemStream Open(FileMode mode, FileAccess access);
-
-        /// 
-        FileSystemStream Open(FileMode mode, FileAccess access, FileShare share);
-
-#if FEATURE_FILESTREAM_OPTIONS
-        /// 
-        FileSystemStream Open(FileStreamOptions options);
-#endif
-
-        /// 
-        FileSystemStream OpenRead();
-
-        /// 
-        public StreamReader OpenText();
-
-        /// 
-        FileSystemStream OpenWrite();
-
-        /// 
-        IFileInfo Replace(string destinationFileName,
-            string? destinationBackupFileName);
-
-        /// 
-        IFileInfo Replace(string destinationFileName,
-            string? destinationBackupFileName,
-            bool ignoreMetadataErrors);
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IFileInfoFactory.cs b/src/TestableIO.System.IO.Abstractions/IFileInfoFactory.cs
deleted file mode 100644
index 380d4373c..000000000
--- a/src/TestableIO.System.IO.Abstractions/IFileInfoFactory.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System.Diagnostics.CodeAnalysis;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    /// A factory for the creation of wrappers for  in a .
-    /// 
-    public interface IFileInfoFactory : IFileSystemEntity
-    {
-        /// 
-        /// Initializes a new instance of a wrapper for  which implements .
-        /// 
-        /// 
-        /// The fully qualified name of the new file, or the relative file name.
-        /// Do not end the path with the directory separator character.
-        /// 
-        IFileInfo New(string fileName);
-
-        /// 
-        /// Wraps the  in a wrapper for  which implements .
-        /// 
-        [return: NotNullIfNotNull("fileInfo")]
-        IFileInfo? Wrap(FileInfo? fileInfo);
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IFileStreamFactory.cs b/src/TestableIO.System.IO.Abstractions/IFileStreamFactory.cs
deleted file mode 100644
index ea33d6cac..000000000
--- a/src/TestableIO.System.IO.Abstractions/IFileStreamFactory.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using Microsoft.Win32.SafeHandles;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    /// A factory for the creation of wrappers for  in a .
-    /// 
-    public interface IFileStreamFactory : IFileSystemEntity
-    {
-        /// 
-        FileSystemStream New(SafeFileHandle handle, FileAccess access);
-
-        /// 
-        FileSystemStream New(SafeFileHandle handle, FileAccess access, int bufferSize);
-
-        /// 
-        FileSystemStream New(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync);
-        
-        /// 
-        FileSystemStream New(string path, FileMode mode);
-
-        /// 
-        FileSystemStream New(string path, FileMode mode, FileAccess access);
-
-        /// 
-        FileSystemStream New(string path, FileMode mode, FileAccess access,
-            FileShare share);
-
-        /// 
-        FileSystemStream New(string path, FileMode mode, FileAccess access,
-            FileShare share, int bufferSize);
-
-        /// 
-        FileSystemStream New(string path, FileMode mode, FileAccess access,
-            FileShare share, int bufferSize, bool useAsync);
-
-        /// 
-        FileSystemStream New(string path, FileMode mode, FileAccess access,
-            FileShare share, int bufferSize, FileOptions options);
-
-#if FEATURE_FILESTREAM_OPTIONS
-	    /// 
-	    FileSystemStream New(string path, FileStreamOptions options);
-#endif
-
-        /// 
-        ///     Wraps the  to the testable .
-        /// 
-        FileSystemStream Wrap(FileStream fileStream);
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IFileSystem.cs b/src/TestableIO.System.IO.Abstractions/IFileSystem.cs
deleted file mode 100644
index bc56d6246..000000000
--- a/src/TestableIO.System.IO.Abstractions/IFileSystem.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-namespace System.IO.Abstractions
-{
-    /// 
-    /// Abstraction of the file system.
-    /// 
-    public interface IFileSystem
-    {
-        /// 
-        /// Abstraction for static methods in .
-        /// 
-        IDirectory Directory { get; }
-
-        /// 
-        /// A factory for the creation of wrappers for .
-        /// 
-        IDirectoryInfoFactory DirectoryInfo { get; }
-
-        /// 
-        /// A factory for the creation of wrappers for .
-        /// 
-        IDriveInfoFactory DriveInfo { get; }
-
-        /// 
-        /// Abstraction for static methods in .
-        /// 
-        IFile File { get; }
-
-        /// 
-        /// A factory for the creation of wrappers for .
-        /// 
-        IFileInfoFactory FileInfo { get; }
-
-        /// 
-        /// A factory for the creation of wrappers for .
-        /// 
-        IFileVersionInfoFactory FileVersionInfo { get; }
-
-        /// 
-        /// A factory for the creation of wrappers for .
-        /// 
-        IFileStreamFactory FileStream { get; }
-
-        /// 
-        /// A factory for the creation of wrappers for .
-        /// 
-        IFileSystemWatcherFactory FileSystemWatcher { get; }
-
-        /// 
-        /// Abstraction for static methods and properties in .
-        /// 
-        IPath Path { get; }
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IFileSystemAclSupport.cs b/src/TestableIO.System.IO.Abstractions/IFileSystemAclSupport.cs
deleted file mode 100644
index e1f6079b0..000000000
--- a/src/TestableIO.System.IO.Abstractions/IFileSystemAclSupport.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-namespace System.IO.Abstractions
-{
-    /// 
-    ///     Support ACL functionality on file system instances.
-    /// 
-    public interface IFileSystemAclSupport
-    {
-        /// 
-        ///     Gets a access control object that encapsulates the access control list (ACL) entries for the file or directory in the file system.
-        /// 
-        object GetAccessControl();
-
-        /// 
-        ///     Gets a access control object that encapsulates the access control list (ACL) entries for the file or directory in the file system.
-        /// 
-        /// One of the  values that specifies the type of access control list (ACL) information to receive.
-        object GetAccessControl(AccessControlSections includeSections);
-
-        /// 
-        ///     Applies access control list (ACL) entries described by the  object to the file or directory in the file system.
-        /// 
-        void SetAccessControl(object value);
-
-        /// 
-        /// Specifies which sections of a security descriptor to save or load.
-        [Flags]
-        public enum AccessControlSections
-        {
-            /// 
-            /// No sections.
-            /// 
-            None = 0,
-
-            /// 
-            /// The system access control list (SACL).
-            /// 
-            Audit = 1,
-
-            /// 
-            /// The discretionary access control list (DACL).
-            /// 
-            Access = 2,
-
-            /// 
-            /// The owner.
-            /// 
-            Owner = 4,
-
-            /// 
-            /// The primary group.
-            /// 
-            Group = 8,
-
-            /// 
-            /// The entire security descriptor.
-            /// 
-            All = Group | Owner | Access | Audit
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IFileSystemEntity.cs b/src/TestableIO.System.IO.Abstractions/IFileSystemEntity.cs
deleted file mode 100644
index 53401b5f6..000000000
--- a/src/TestableIO.System.IO.Abstractions/IFileSystemEntity.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-namespace System.IO.Abstractions
-{
-    /// 
-    ///     Interface to support implementing extension methods on top of nested  interfaces.
-    /// 
-    public interface IFileSystemEntity
-    {
-        /// 
-        ///     Exposes the underlying file system implementation.
-        ///     
-        ///     This is useful for implementing extension methods.
-        /// 
-        IFileSystem FileSystem { get; }
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IFileSystemInfo.cs b/src/TestableIO.System.IO.Abstractions/IFileSystemInfo.cs
deleted file mode 100644
index 9850790d7..000000000
--- a/src/TestableIO.System.IO.Abstractions/IFileSystemInfo.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-using System.Runtime.Versioning;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    public interface IFileSystemInfo
-    {
-        /// 
-        /// Exposes the underlying filesystem implementation. This is useful for implementing extension methods.
-        /// 
-        /// 
-        /// The property is always a global object related to the global current directory.
-        ///         
-        IFileSystem FileSystem { get; }
-
-        /// 
-        FileAttributes Attributes { get; set; }
-
-        /// 
-        DateTime CreationTime { get; set; }
-
-        /// 
-        DateTime CreationTimeUtc { get; set; }
-
-        /// 
-        bool Exists { get; }
-
-        /// 
-        string Extension { get; }
-
-        /// 
-        string FullName { get; }
-
-        /// 
-        DateTime LastAccessTime { get; set; }
-
-        /// 
-        DateTime LastAccessTimeUtc { get; set; }
-
-        /// 
-        DateTime LastWriteTime { get; set; }
-
-        /// 
-        DateTime LastWriteTimeUtc { get; set; }
-
-#if FEATURE_FILE_SYSTEM_INFO_LINK_TARGET
-        /// 
-        string? LinkTarget { get; }
-#endif
-
-        /// 
-        string Name { get; }
-
-#if FEATURE_UNIX_FILE_MODE
-        /// 
-        UnixFileMode UnixFileMode
-        {
-            get;
-            [UnsupportedOSPlatform("windows")]
-            set;
-        }
-#endif
-
-#if FEATURE_CREATE_SYMBOLIC_LINK
-        /// 
-        void CreateAsSymbolicLink(string pathToTarget);
-#endif
-
-        /// 
-        void Delete();
-
-        /// 
-        void Refresh();
-
-#if FEATURE_CREATE_SYMBOLIC_LINK
-        /// 
-        IFileSystemInfo? ResolveLinkTarget(bool returnFinalTarget);
-#endif
-    }
-}
diff --git a/src/TestableIO.System.IO.Abstractions/IFileSystemWatcher.cs b/src/TestableIO.System.IO.Abstractions/IFileSystemWatcher.cs
deleted file mode 100644
index edd6af6c1..000000000
--- a/src/TestableIO.System.IO.Abstractions/IFileSystemWatcher.cs
+++ /dev/null
@@ -1,73 +0,0 @@
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    public interface IFileSystemWatcher : IFileSystemEntity, IDisposable
-    {
-        /// 
-        IContainer? Container { get; }
-
-        /// 
-        bool EnableRaisingEvents { get; set; }
-
-        /// 
-        string Filter { get; set; }
-
-#if FEATURE_FILE_SYSTEM_WATCHER_FILTERS
-        /// 
-        Collection Filters { get; }
-#endif
-
-        /// 
-        bool IncludeSubdirectories { get; set; }
-
-        /// 
-        int InternalBufferSize { get; set; }
-
-        /// 
-        NotifyFilters NotifyFilter { get; set; }
-
-        /// 
-        string Path { get; set; }
-
-        /// 
-        ISite? Site { get; set; }
-
-        /// 
-        ISynchronizeInvoke? SynchronizingObject { get; set; }
-
-        /// 
-        event FileSystemEventHandler? Changed;
-
-        /// 
-        event FileSystemEventHandler? Created;
-
-        /// 
-        event FileSystemEventHandler? Deleted;
-
-        /// 
-        event ErrorEventHandler? Error;
-
-        /// 
-        event RenamedEventHandler? Renamed;
-
-        /// 
-        void BeginInit();
-
-        /// 
-        void EndInit();
-
-        /// 
-        IWaitForChangedResult WaitForChanged(WatcherChangeTypes changeType);
-
-        /// 
-        IWaitForChangedResult WaitForChanged(WatcherChangeTypes changeType, int timeout);
-
-#if FEATURE_FILE_SYSTEM_WATCHER_WAIT_WITH_TIMESPAN
-        /// 
-        IWaitForChangedResult WaitForChanged(WatcherChangeTypes changeType, TimeSpan timeout);
-#endif
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IFileSystemWatcherFactory.cs b/src/TestableIO.System.IO.Abstractions/IFileSystemWatcherFactory.cs
deleted file mode 100644
index bcb3fae0b..000000000
--- a/src/TestableIO.System.IO.Abstractions/IFileSystemWatcherFactory.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using System.Diagnostics.CodeAnalysis;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    /// A factory for the creation of wrappers for  in a .
-    /// 
-    public interface IFileSystemWatcherFactory : IFileSystemEntity
-    {
-        /// 
-        /// Initializes a new instance of a wrapper for  which implements .
-        /// 
-        IFileSystemWatcher New();
-
-        /// 
-        /// Initializes a new instance of a wrapper for  which implements .
-        /// 
-        /// The directory to monitor, in standard or Universal Naming Convention (UNC) notation.
-        IFileSystemWatcher New(string path);
-
-        /// 
-        /// Initializes a new instance of a wrapper for  which implements .
-        /// 
-        /// The directory to monitor, in standard or Universal Naming Convention (UNC) notation.
-        /// 
-        /// The type of files to watch.
-        /// For example, "*.txt" watches for changes to all text files.
-        /// 
-        IFileSystemWatcher New(string path, string filter);
-
-        /// 
-        /// Wraps the  to the testable interface .
-        /// 
-        [return: NotNullIfNotNull("fileSystemWatcher")]
-        IFileSystemWatcher? Wrap(FileSystemWatcher? fileSystemWatcher);
-    }
-}
diff --git a/src/TestableIO.System.IO.Abstractions/IFileVersionInfo.cs b/src/TestableIO.System.IO.Abstractions/IFileVersionInfo.cs
deleted file mode 100644
index d7840f2f4..000000000
--- a/src/TestableIO.System.IO.Abstractions/IFileVersionInfo.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-using System.Diagnostics;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    public interface IFileVersionInfo
-    {
-        /// 
-        string? Comments { get; }
-
-        /// 
-        string? CompanyName { get; }
-
-        /// 
-        int FileBuildPart { get; }
-
-        /// 
-        string? FileDescription { get; }
-
-        /// 
-        int FileMajorPart { get; }
-
-        /// 
-        int FileMinorPart { get; }
-
-        /// 
-        string FileName { get; }
-
-        /// 
-        int FilePrivatePart { get; }
-
-        /// 
-        string? FileVersion { get; }
-
-        /// 
-        string? InternalName { get; }
-
-        /// 
-        bool IsDebug { get; }
-
-        /// 
-        bool IsPatched { get; }
-
-        /// 
-        bool IsPrivateBuild { get; }
-
-        /// 
-        bool IsPreRelease { get; }
-
-        /// 
-        bool IsSpecialBuild { get; }
-
-        /// 
-        string? Language { get; }
-
-        /// 
-        string? LegalCopyright { get; }
-
-        /// 
-        string? LegalTrademarks { get; }
-
-        /// 
-        string? OriginalFilename { get; }
-
-        /// 
-        string? PrivateBuild { get; }
-
-        /// 
-        int ProductBuildPart { get; }
-
-        /// 
-        int ProductMajorPart { get; }
-
-        /// 
-        int ProductMinorPart { get; }
-
-        /// 
-        string? ProductName { get; }
-
-        /// 
-        int ProductPrivatePart { get; }
-
-        /// 
-        string? ProductVersion { get; }
-
-        /// 
-        string? SpecialBuild { get; }
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IFileVersionInfoFactory.cs b/src/TestableIO.System.IO.Abstractions/IFileVersionInfoFactory.cs
deleted file mode 100644
index a1d9208eb..000000000
--- a/src/TestableIO.System.IO.Abstractions/IFileVersionInfoFactory.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System.Diagnostics;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    /// A factory for the creation of wrappers for  in a .
-    /// 
-    public interface IFileVersionInfoFactory : IFileSystemEntity
-    {
-        /// 
-        IFileVersionInfo GetVersionInfo(string fileName);
-    }
-}
diff --git a/src/TestableIO.System.IO.Abstractions/IPath.cs b/src/TestableIO.System.IO.Abstractions/IPath.cs
deleted file mode 100644
index 79334ae21..000000000
--- a/src/TestableIO.System.IO.Abstractions/IPath.cs
+++ /dev/null
@@ -1,205 +0,0 @@
-using System.Diagnostics.CodeAnalysis;
-
-namespace System.IO.Abstractions
-{
-    /// 
-    public interface IPath : IFileSystemEntity
-    {
-        /// 
-        char AltDirectorySeparatorChar { get; }
-
-        /// 
-        char DirectorySeparatorChar { get; }
-
-        /// 
-        char PathSeparator { get; }
-
-        /// 
-        char VolumeSeparatorChar { get; }
-
-        /// 
-        [return: NotNullIfNotNull("path")]
-        string? ChangeExtension(string? path, string? extension);
-
-        /// 
-        string Combine(string path1, string path2);
-
-        /// 
-        string Combine(string path1, string path2, string path3);
-
-        /// 
-        string Combine(string path1, string path2, string path3, string path4);
-
-        /// 
-        string Combine(params string[] paths);
-
-#if FEATURE_PATH_SPAN
-        /// 
-        string Combine(params ReadOnlySpan paths);
-#endif
-
-#if FEATURE_ENDS_IN_DIRECTORY_SEPARATOR
-        /// 
-        bool EndsInDirectorySeparator(ReadOnlySpan path);
-
-	    /// 
-	    bool EndsInDirectorySeparator(string path);
-#endif
-
-#if FEATURE_PATH_EXISTS
-        /// 
-        bool Exists([NotNullWhen(true)] string? path);
-#endif
-
-#if FEATURE_ADVANCED_PATH_OPERATIONS
-        /// 
-        ReadOnlySpan GetDirectoryName(ReadOnlySpan path);
-#endif
-
-        /// 
-        string? GetDirectoryName(string? path);
-
-#if FEATURE_ADVANCED_PATH_OPERATIONS
-        /// 
-        ReadOnlySpan GetExtension(ReadOnlySpan path);
-#endif
-
-        /// 
-        [return: NotNullIfNotNull("path")]
-        string? GetExtension(string? path);
-
-#if FEATURE_ADVANCED_PATH_OPERATIONS
-        /// 
-        ReadOnlySpan GetFileName(ReadOnlySpan path);
-#endif
-
-        /// 
-        [return: NotNullIfNotNull("path")]
-        string? GetFileName(string? path);
-
-#if FEATURE_ADVANCED_PATH_OPERATIONS
-        /// 
-        ReadOnlySpan GetFileNameWithoutExtension(ReadOnlySpan path);
-#endif
-
-        /// 
-        [return: NotNullIfNotNull("path")]
-        string? GetFileNameWithoutExtension(string? path);
-
-        /// 
-        string GetFullPath(string path);
-
-#if FEATURE_ADVANCED_PATH_OPERATIONS
-        /// 
-        string GetFullPath(string path, string basePath);
-#endif
-
-        /// 
-        char[] GetInvalidFileNameChars();
-
-        /// 
-        char[] GetInvalidPathChars();
-
-#if FEATURE_ADVANCED_PATH_OPERATIONS
-        /// 
-        ReadOnlySpan GetPathRoot(ReadOnlySpan path);
-#endif
-
-        /// 
-        string? GetPathRoot(string? path);
-
-        /// 
-        string GetRandomFileName();
-
-#if FEATURE_ADVANCED_PATH_OPERATIONS
-        /// 
-        string GetRelativePath(string relativeTo, string path);
-#endif
-
-        /// 
-        string GetTempFileName();
-
-        /// 
-        string GetTempPath();
-
-#if FEATURE_ADVANCED_PATH_OPERATIONS
-        /// 
-        bool HasExtension(ReadOnlySpan path);
-#endif
-
-        /// 
-        bool HasExtension([NotNullWhen(true)] string? path);
-
-#if FEATURE_ADVANCED_PATH_OPERATIONS
-        /// 
-        bool IsPathFullyQualified(ReadOnlySpan path);
-
-        /// 
-        bool IsPathFullyQualified(string path);
-
-        /// 
-        bool IsPathRooted(ReadOnlySpan path);
-#endif
-
-        /// 
-        bool IsPathRooted([NotNullWhen(true)] string? path);
-
-#if FEATURE_PATH_JOIN_WITH_SPAN
-        /// 
-        string Join(ReadOnlySpan path1, ReadOnlySpan path2);
-
-        /// 
-        string Join(ReadOnlySpan path1,
-            ReadOnlySpan path2,
-            ReadOnlySpan path3);
-
-#if FEATURE_PATH_SPAN
-        /// 
-        string Join(params ReadOnlySpan paths);
-#endif
-
-        /// 
-        bool TryJoin(ReadOnlySpan path1,
-            ReadOnlySpan path2,
-            Span destination,
-            out int charsWritten);
-
-        /// 
-        bool TryJoin(ReadOnlySpan path1,
-            ReadOnlySpan path2,
-            ReadOnlySpan path3,
-            Span destination,
-            out int charsWritten);
-#endif
-
-#if FEATURE_PATH_JOIN_WITH_PARAMS
-        /// 
-        string Join(string? path1, string? path2);
-
-        /// 
-        string Join(string? path1, string? path2, string? path3);
-
-        /// 
-        string Join(params string?[] paths);
-#endif
-
-#if FEATURE_ENDS_IN_DIRECTORY_SEPARATOR
-        /// 
-        ReadOnlySpan TrimEndingDirectorySeparator(ReadOnlySpan path);
-
-        /// 
-        string TrimEndingDirectorySeparator(string path);
-#endif
-
-#if FEATURE_PATH_JOIN_WITH_FOUR_PATHS
-        /// 
-        string Join(ReadOnlySpan path1,
-            ReadOnlySpan path2,
-            ReadOnlySpan path3,
-            ReadOnlySpan path4);
-
-        /// 
-        string Join(string? path1, string? path2, string? path3, string? path4);
-#endif
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/IWaitForChangedResult.cs b/src/TestableIO.System.IO.Abstractions/IWaitForChangedResult.cs
deleted file mode 100644
index e4e2ef022..000000000
--- a/src/TestableIO.System.IO.Abstractions/IWaitForChangedResult.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-namespace System.IO.Abstractions
-{
-    /// 
-    ///     Abstractions for .
-    /// 
-    public interface IWaitForChangedResult
-    {
-        /// 
-        WatcherChangeTypes ChangeType { get; }
-
-        /// 
-        string? Name { get; }
-
-        /// 
-        string? OldName { get; }
-
-        /// 
-        bool TimedOut { get; }
-    }
-}
\ No newline at end of file
diff --git a/src/TestableIO.System.IO.Abstractions/Polyfills/SupportedOSPlatformAttribute.cs b/src/TestableIO.System.IO.Abstractions/Polyfills/SupportedOSPlatformAttribute.cs
deleted file mode 100644
index ef6635b4f..000000000
--- a/src/TestableIO.System.IO.Abstractions/Polyfills/SupportedOSPlatformAttribute.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-#if !FEATURE_SUPPORTED_OS_ATTRIBUTE
-namespace System.Runtime.Versioning
-{
-    [AttributeUsage(AttributeTargets.All)]
-    internal class SupportedOSPlatformAttribute : Attribute
-    {
-        public SupportedOSPlatformAttribute(string _)
-        {
-        }
-    }
-}
-#endif
diff --git a/src/TestableIO.System.IO.Abstractions/Properties/AssemblyInfo.cs b/src/TestableIO.System.IO.Abstractions/Properties/AssemblyInfo.cs
deleted file mode 100644
index e323c1be1..000000000
--- a/src/TestableIO.System.IO.Abstractions/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,5 +0,0 @@
-using System;
-using System.Runtime.CompilerServices;
-
-[assembly: CLSCompliant(true)]
-
diff --git a/src/TestableIO.System.IO.Abstractions/TestableIO.System.IO.Abstractions.csproj b/src/TestableIO.System.IO.Abstractions/TestableIO.System.IO.Abstractions.csproj
index bf11eeb41..d5e12936d 100644
--- a/src/TestableIO.System.IO.Abstractions/TestableIO.System.IO.Abstractions.csproj
+++ b/src/TestableIO.System.IO.Abstractions/TestableIO.System.IO.Abstractions.csproj
@@ -17,6 +17,7 @@
       all
       runtime; build; native; contentfiles; analyzers; buildtransitive
     
+