diff --git a/SabreTools.Library/DatFiles/AttractMode.cs b/SabreTools.Library/DatFiles/AttractMode.cs
index 449f7e05..60601d83 100644
--- a/SabreTools.Library/DatFiles/AttractMode.cs
+++ b/SabreTools.Library/DatFiles/AttractMode.cs
@@ -5,8 +5,8 @@ using System.Text;
using SabreTools.Library.Data;
using SabreTools.Library.DatItems;
+using SabreTools.Library.IO;
using SabreTools.Library.Tools;
-using SabreTools.Library.Writers;
namespace SabreTools.Library.DatFiles
{
diff --git a/SabreTools.Library/DatFiles/ClrMamePro.cs b/SabreTools.Library/DatFiles/ClrMamePro.cs
index a0eb734c..2604c0db 100644
--- a/SabreTools.Library/DatFiles/ClrMamePro.cs
+++ b/SabreTools.Library/DatFiles/ClrMamePro.cs
@@ -5,9 +5,8 @@ using System.Text;
using SabreTools.Library.Data;
using SabreTools.Library.DatItems;
-using SabreTools.Library.Readers;
+using SabreTools.Library.IO;
using SabreTools.Library.Tools;
-using SabreTools.Library.Writers;
namespace SabreTools.Library.DatFiles
{
diff --git a/SabreTools.Library/DatFiles/DosCenter.cs b/SabreTools.Library/DatFiles/DosCenter.cs
index dce21ca3..32155bfb 100644
--- a/SabreTools.Library/DatFiles/DosCenter.cs
+++ b/SabreTools.Library/DatFiles/DosCenter.cs
@@ -6,9 +6,8 @@ using System.Text;
using SabreTools.Library.Data;
using SabreTools.Library.DatItems;
-using SabreTools.Library.Readers;
+using SabreTools.Library.IO;
using SabreTools.Library.Tools;
-using SabreTools.Library.Writers;
namespace SabreTools.Library.DatFiles
{
diff --git a/SabreTools.Library/DatFiles/EverdriveSmdb.cs b/SabreTools.Library/DatFiles/EverdriveSmdb.cs
index af4b34c4..12d70ada 100644
--- a/SabreTools.Library/DatFiles/EverdriveSmdb.cs
+++ b/SabreTools.Library/DatFiles/EverdriveSmdb.cs
@@ -5,8 +5,8 @@ using System.Text;
using SabreTools.Library.Data;
using SabreTools.Library.DatItems;
+using SabreTools.Library.IO;
using SabreTools.Library.Tools;
-using SabreTools.Library.Writers;
namespace SabreTools.Library.DatFiles
{
diff --git a/SabreTools.Library/DatFiles/Hashfile.cs b/SabreTools.Library/DatFiles/Hashfile.cs
index 2af478f9..cb3cb572 100644
--- a/SabreTools.Library/DatFiles/Hashfile.cs
+++ b/SabreTools.Library/DatFiles/Hashfile.cs
@@ -5,8 +5,8 @@ using System.Text;
using SabreTools.Library.Data;
using SabreTools.Library.DatItems;
+using SabreTools.Library.IO;
using SabreTools.Library.Tools;
-using SabreTools.Library.Writers;
namespace SabreTools.Library.DatFiles
{
diff --git a/SabreTools.Library/DatFiles/RomCenter.cs b/SabreTools.Library/DatFiles/RomCenter.cs
index 5da30cf6..c23b517c 100644
--- a/SabreTools.Library/DatFiles/RomCenter.cs
+++ b/SabreTools.Library/DatFiles/RomCenter.cs
@@ -5,9 +5,8 @@ using System.Text;
using SabreTools.Library.Data;
using SabreTools.Library.DatItems;
-using SabreTools.Library.Readers;
+using SabreTools.Library.IO;
using SabreTools.Library.Tools;
-using SabreTools.Library.Writers;
namespace SabreTools.Library.DatFiles
{
diff --git a/SabreTools.Library/DatFiles/SeparatedValue.cs b/SabreTools.Library/DatFiles/SeparatedValue.cs
index 770997cf..d86f33b2 100644
--- a/SabreTools.Library/DatFiles/SeparatedValue.cs
+++ b/SabreTools.Library/DatFiles/SeparatedValue.cs
@@ -5,9 +5,8 @@ using System.Text;
using SabreTools.Library.Data;
using SabreTools.Library.DatItems;
-using SabreTools.Library.Readers;
+using SabreTools.Library.IO;
using SabreTools.Library.Tools;
-using SabreTools.Library.Writers;
namespace SabreTools.Library.DatFiles
{
diff --git a/SabreTools.Library/Data/Enums.cs b/SabreTools.Library/Data/Enums.cs
index 3babdac7..88644d70 100644
--- a/SabreTools.Library/Data/Enums.cs
+++ b/SabreTools.Library/Data/Enums.cs
@@ -32,33 +32,4 @@
}
#endregion
-
- #region Reader related
-
- ///
- /// Different types of CMP rows being parsed
- ///
- public enum CmpRowType
- {
- None,
- TopLevel,
- Standalone,
- Internal,
- Comment,
- EndTopLevel,
- }
-
- ///
- /// Different types of INI rows being parsed
- ///
- public enum IniRowType
- {
- None,
- SectionHeader,
- KeyValue,
- Comment,
- Invalid,
- }
-
- #endregion
}
diff --git a/SabreTools.Library/Readers/ClrMameProReader.cs b/SabreTools.Library/IO/ClrMameProReader.cs
similarity index 99%
rename from SabreTools.Library/Readers/ClrMameProReader.cs
rename to SabreTools.Library/IO/ClrMameProReader.cs
index ed774b35..335f0e05 100644
--- a/SabreTools.Library/Readers/ClrMameProReader.cs
+++ b/SabreTools.Library/IO/ClrMameProReader.cs
@@ -6,9 +6,8 @@ using System.Text;
using System.Text.RegularExpressions;
using SabreTools.Library.Data;
-using SabreTools.Library.Tools;
-namespace SabreTools.Library.Readers
+namespace SabreTools.Library.IO
{
public class ClrMameProReader : IDisposable
{
diff --git a/SabreTools.Library/Writers/ClrMameProWriter.cs b/SabreTools.Library/IO/ClrMameProWriter.cs
similarity index 99%
rename from SabreTools.Library/Writers/ClrMameProWriter.cs
rename to SabreTools.Library/IO/ClrMameProWriter.cs
index 2f9a5118..2a35af32 100644
--- a/SabreTools.Library/Writers/ClrMameProWriter.cs
+++ b/SabreTools.Library/IO/ClrMameProWriter.cs
@@ -2,7 +2,7 @@
using System.IO;
using System.Text;
-namespace SabreTools.Library.Writers
+namespace SabreTools.Library.IO
{
///
/// ClrMamePro writer patterned heavily off of XmlTextWriter
diff --git a/SabreTools.Library/IO/Enums.cs b/SabreTools.Library/IO/Enums.cs
new file mode 100644
index 00000000..14492285
--- /dev/null
+++ b/SabreTools.Library/IO/Enums.cs
@@ -0,0 +1,27 @@
+namespace SabreTools.Library.IO
+{
+ ///
+ /// Different types of CMP rows being parsed
+ ///
+ public enum CmpRowType
+ {
+ None,
+ TopLevel,
+ Standalone,
+ Internal,
+ Comment,
+ EndTopLevel,
+ }
+
+ ///
+ /// Different types of INI rows being parsed
+ ///
+ public enum IniRowType
+ {
+ None,
+ SectionHeader,
+ KeyValue,
+ Comment,
+ Invalid,
+ }
+}
diff --git a/SabreTools.Library/Readers/IniReader.cs b/SabreTools.Library/IO/IniReader.cs
similarity index 98%
rename from SabreTools.Library/Readers/IniReader.cs
rename to SabreTools.Library/IO/IniReader.cs
index 0b9b47b7..53527cfa 100644
--- a/SabreTools.Library/Readers/IniReader.cs
+++ b/SabreTools.Library/IO/IniReader.cs
@@ -4,9 +4,7 @@ using System.IO;
using System.Linq;
using System.Text;
-using SabreTools.Library.Data;
-
-namespace SabreTools.Library.Readers
+namespace SabreTools.Library.IO
{
public class IniReader : IDisposable
{
diff --git a/SabreTools.Library/Writers/IniWriter.cs b/SabreTools.Library/IO/IniWriter.cs
similarity index 98%
rename from SabreTools.Library/Writers/IniWriter.cs
rename to SabreTools.Library/IO/IniWriter.cs
index f9836873..78749e52 100644
--- a/SabreTools.Library/Writers/IniWriter.cs
+++ b/SabreTools.Library/IO/IniWriter.cs
@@ -2,7 +2,7 @@
using System.IO;
using System.Text;
-namespace SabreTools.Library.Writers
+namespace SabreTools.Library.IO
{
public class IniWriter : IDisposable
{
diff --git a/SabreTools.Library/Readers/SeparatedValueReader.cs b/SabreTools.Library/IO/SeparatedValueReader.cs
similarity index 99%
rename from SabreTools.Library/Readers/SeparatedValueReader.cs
rename to SabreTools.Library/IO/SeparatedValueReader.cs
index af6ef66a..178998d0 100644
--- a/SabreTools.Library/Readers/SeparatedValueReader.cs
+++ b/SabreTools.Library/IO/SeparatedValueReader.cs
@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
-namespace SabreTools.Library.Readers
+namespace SabreTools.Library.IO
{
public class SeparatedValueReader : IDisposable
{
diff --git a/SabreTools.Library/Writers/SeparatedValueWriter.cs b/SabreTools.Library/IO/SeparatedValueWriter.cs
similarity index 99%
rename from SabreTools.Library/Writers/SeparatedValueWriter.cs
rename to SabreTools.Library/IO/SeparatedValueWriter.cs
index b8f69312..f929fa21 100644
--- a/SabreTools.Library/Writers/SeparatedValueWriter.cs
+++ b/SabreTools.Library/IO/SeparatedValueWriter.cs
@@ -2,7 +2,7 @@
using System.IO;
using System.Text;
-namespace SabreTools.Library.Writers
+namespace SabreTools.Library.IO
{
public class SeparatedValueWriter : IDisposable
{
diff --git a/SabreTools.Library/Tools/FileExtensions.cs b/SabreTools.Library/Tools/FileExtensions.cs
index bca6538e..3e1c5c5e 100644
--- a/SabreTools.Library/Tools/FileExtensions.cs
+++ b/SabreTools.Library/Tools/FileExtensions.cs
@@ -8,7 +8,7 @@ using System.Xml.Schema;
using SabreTools.Library.Data;
using SabreTools.Library.DatFiles;
using SabreTools.Library.FileTypes;
-using SabreTools.Library.Readers;
+using SabreTools.Library.IO;
using SabreTools.Library.Skippers;
namespace SabreTools.Library.Tools