diff --git a/Drinks-App.csproj b/Drinks-App.csproj
new file mode 100644
index 00000000..8483b8a2
--- /dev/null
+++ b/Drinks-App.csproj
@@ -0,0 +1,17 @@
+
+
+
+ Exe
+ net9.0
+ Drinks_App
+ enable
+ enable
+
+
+
+
+
+
+
+
+
diff --git a/Drinks-App.sln b/Drinks-App.sln
new file mode 100644
index 00000000..6559ccd5
--- /dev/null
+++ b/Drinks-App.sln
@@ -0,0 +1,24 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.2.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Drinks-App", "Drinks-App.csproj", "{B047A06B-5EBC-A5CD-3168-16CC1D06A23F}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {B047A06B-5EBC-A5CD-3168-16CC1D06A23F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B047A06B-5EBC-A5CD-3168-16CC1D06A23F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B047A06B-5EBC-A5CD-3168-16CC1D06A23F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B047A06B-5EBC-A5CD-3168-16CC1D06A23F}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {0CC91901-3627-45F7-B887-53A9EFCADBE9}
+ EndGlobalSection
+EndGlobal
diff --git a/DrinksService.cs b/DrinksService.cs
new file mode 100644
index 00000000..100e4fe8
--- /dev/null
+++ b/DrinksService.cs
@@ -0,0 +1,101 @@
+using Drinks_App.Models;
+using Newtonsoft.Json;
+using RestSharp;
+using System.Reflection;
+using System.Web;
+using static Drinks_App.Models.Drink;
+using static Drinks_App.Models.DrinkDetails;
+
+namespace Drinks_App
+{
+ internal class DrinksService
+ {
+ internal List GetCategories()
+ {
+ var client = new RestClient("http://www.thecocktaildb.com/api/json/v1/1/");
+ var request = new RestRequest("list.php?c=list");
+ var response = client.ExecuteAsync(request);
+
+ List categories = new();
+
+ if (response.Result.StatusCode == System.Net.HttpStatusCode.OK)
+ {
+ string rawResponse = response.Result.Content;
+ var serialise = JsonConvert.DeserializeObject(rawResponse);
+
+ categories = serialise.CategoriesList;
+
+ TableVisualizationEngine.ShowTable(categories, "Categories Menu");
+
+ return categories;
+ }
+ return categories;
+ }
+ internal List GetDrinks(string? category)
+ {
+ var client = new RestClient("http://www.thecocktaildb.com/api/json/v1/1/");
+ var request = new RestRequest($"filter.php?c={ HttpUtility.UrlEncode(category)}");
+ var response = client.ExecuteAsync(request);
+
+ List drinks = new();
+
+ if (response.Result.StatusCode == System.Net.HttpStatusCode.OK)
+ {
+ string rawResponse = response.Result.Content;
+ var serialise = JsonConvert.DeserializeObject(rawResponse);
+
+ drinks = serialise.DrinksList;
+
+ TableVisualizationEngine.ShowTable(drinks, "Drinks Menu");
+
+ return drinks;
+ }
+
+ return drinks;
+ }
+
+ internal void GetDrink(string? drinkId)
+ {
+ var client = new RestClient("http://www.thecocktaildb.com/api/json/v1/1/");
+ var request = new RestRequest($"lookup.php?i={HttpUtility.UrlEncode(drinkId)}");
+ var response = client.ExecuteAsync(request);
+
+ if (response.Result.StatusCode == System.Net.HttpStatusCode.OK)
+ {
+ string rawResponse = response.Result.Content;
+ var serialise = JsonConvert.DeserializeObject(rawResponse);
+
+ List returnedList = serialise.DrinkDetailList;
+
+ DrinkDetail drinkDetail = returnedList[0];
+
+ List