diff --git a/Beam.Abstractions/Beam.Abstractions.csproj b/Beam.Abstractions/Beam.Abstractions.csproj
new file mode 100644
index 0000000..bea4d88
--- /dev/null
+++ b/Beam.Abstractions/Beam.Abstractions.csproj
@@ -0,0 +1,16 @@
+
+
+
+ net9.0
+ enable
+ enable
+ Beam.Abstract
+
+
+
+
+
+
+
+
+
diff --git a/Beam.Abstractions/IArticleData.cs b/Beam.Abstractions/IArticleData.cs
new file mode 100644
index 0000000..b9cc6de
--- /dev/null
+++ b/Beam.Abstractions/IArticleData.cs
@@ -0,0 +1,10 @@
+namespace Beam.Abstractions;
+
+public interface IArticleData : IDocumentMetaData, IEquatable {
+ string? Name { get; set; }
+ string[] Authors { get; set; }
+ string? Language { get; set; }
+ string[] Categories { get; set; }
+ string? Version { get; set; }
+ string? Description { get; set; }
+}
\ No newline at end of file
diff --git a/Beam.Abstractions/IDataBindings.cs b/Beam.Abstractions/IDataBindings.cs
new file mode 100644
index 0000000..1155eee
--- /dev/null
+++ b/Beam.Abstractions/IDataBindings.cs
@@ -0,0 +1,27 @@
+using Beam.Dynamic;
+
+namespace Beam.Abstractions;
+
+public interface IDataBindings {
+ IDataProvider? Title { get; set; }
+ IDataProvider? Authors { get; set; }
+ IDataProvider? Description { get; set; }
+ IDataProvider? Content { get; set; }
+ IDataProvider? Language { get; set; }
+ IDataProvider? Tags { get; set; }
+ IDataProvider? Publisher { get; set; }
+ IDataProvider? PublicationDate { get; set; }
+ IDataProvider? ISBN { get; set; }
+ IDataProvider? PageCount { get; set; }
+ IDataProvider? CoverImage { get; set; }
+ IDataProvider? Series { get; set; }
+ IDataProvider? Edition { get; set; }
+ IDataProvider? Contributors { get; set; }
+ IDataProvider? Subjects { get; set; }
+ IDataProvider? Rights { get; set; }
+ IDataProvider? TableOfContents { get; set; }
+ IDataProvider? PagesDropDown { get; set; }
+ IDataProvider? NextPageButton { get; set; }
+ IDataProvider? PreviousPageButton { get; set; }
+ Dictionary Providers { get; set; }
+}
\ No newline at end of file
diff --git a/Beam.Abstractions/IDataProvider.cs b/Beam.Abstractions/IDataProvider.cs
new file mode 100644
index 0000000..db87588
--- /dev/null
+++ b/Beam.Abstractions/IDataProvider.cs
@@ -0,0 +1,14 @@
+using HtmlAgilityPack;
+using System.Text.Json.Serialization;
+
+namespace Beam.Dynamic;
+
+public interface IDataProvider {
+ public string GetString(HtmlDocument document)
+ => (this as IDataProvider