diff --git a/SabreTools.DatItems.Test/SourceTests.cs b/SabreTools.DatItems.Test/SourceTests.cs
new file mode 100644
index 00000000..9663a94a
--- /dev/null
+++ b/SabreTools.DatItems.Test/SourceTests.cs
@@ -0,0 +1,23 @@
+using Xunit;
+
+namespace SabreTools.DatItems.Test
+{
+ public class SourceTests
+ {
+ #region Clone
+
+ [Fact]
+ public void CloneTest()
+ {
+ Source item = new Source(1, source: "src");
+
+ object clone = item.Clone();
+ Source? actual = clone as Source;
+ Assert.NotNull(actual);
+ Assert.Equal(1, actual.Index);
+ Assert.Equal("src", actual.Name);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/SabreTools.DatItems/Source.cs b/SabreTools.DatItems/Source.cs
index 9243e2b5..d6481a43 100644
--- a/SabreTools.DatItems/Source.cs
+++ b/SabreTools.DatItems/Source.cs
@@ -10,12 +10,12 @@ namespace SabreTools.DatItems
///
/// Source index
///
- public int Index { get; }
+ public readonly int Index;
///
/// Source name
///
- public string? Name { get; }
+ public readonly string? Name;
///
/// Constructor
@@ -33,10 +33,7 @@ namespace SabreTools.DatItems
///
/// Clone the current object
///
- public object Clone()
- {
- return new Source(Index, Name);
- }
+ public object Clone() => new Source(Index, Name);
#endregion
}