diff --git a/Documentation/Doku.pptx b/Documentation/Doku.pptx
index 62eeca3bcf048e830c1a2674912a0829eb95020b..0395c9f9e1e8ff2483d03fa2ac264c24a43b8da7 100644
Binary files a/Documentation/Doku.pptx and b/Documentation/Doku.pptx differ
diff --git a/Play.Catalog/src/Play.Catalog.Contracts/Play.Catalog.Contracts.csproj b/Play.Catalog/src/Play.Catalog.Contracts/Play.Catalog.Contracts.csproj
index 63991500f96f9b45a9b5173583a01b838411c2f8..f427ff0cbcdcc723d4dcc91204f66c95dfb0797d 100644
--- a/Play.Catalog/src/Play.Catalog.Contracts/Play.Catalog.Contracts.csproj
+++ b/Play.Catalog/src/Play.Catalog.Contracts/Play.Catalog.Contracts.csproj
@@ -3,7 +3,7 @@
   <PropertyGroup>
     <TargetFramework>net7.0</TargetFramework>
     <PackageDescription>Contracts supported by the Catalog microservice.</PackageDescription>
-    <Authors>Julio Casal</Authors>
+    <Authors>Thomas Staub</Authors>
     <Company>.NET Microservices</Company>
   </PropertyGroup>
 
diff --git a/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/FileContentIndex/403973d2-6365-4395-b014-67b618407274.vsidx b/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/FileContentIndex/403973d2-6365-4395-b014-67b618407274.vsidx
deleted file mode 100644
index c01f76a59509a4daaa9b8065ee9846f9ac32e83f..0000000000000000000000000000000000000000
Binary files a/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/FileContentIndex/403973d2-6365-4395-b014-67b618407274.vsidx and /dev/null differ
diff --git a/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/FileContentIndex/8b123d74-4851-498d-be35-af2b7c09290f.vsidx b/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/FileContentIndex/8b123d74-4851-498d-be35-af2b7c09290f.vsidx
new file mode 100644
index 0000000000000000000000000000000000000000..b11ffeaaef22ce45116e9a39348ba42d205cf597
Binary files /dev/null and b/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/FileContentIndex/8b123d74-4851-498d-be35-af2b7c09290f.vsidx differ
diff --git a/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/FileContentIndex/read.lock b/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/FileContentIndex/read.lock
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/v17/.futdcache.v2 b/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/v17/.futdcache.v2
index 6edc0ee0a676f891ecc9d31ad9017ab1ff5d3719..4ea848f2a54a07212e55279c7639b223bc72f60e 100644
Binary files a/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/v17/.futdcache.v2 and b/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/v17/.futdcache.v2 differ
diff --git a/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/v17/.suo b/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/v17/.suo
index 59de00bf4136fc8198d015d1ceecf2778d39cd9b..45a1b227fdb40bc23b68a8f003da6778c121b82e 100644
Binary files a/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/v17/.suo and b/Play.Catalog/src/Play.Catalog.Service/.vs/Play.Catalog.Service/v17/.suo differ
diff --git a/Play.Catalog/src/Play.Catalog.Service/Controllers/ItemsController.cs b/Play.Catalog/src/Play.Catalog.Service/Controllers/ItemsController.cs
index dd157abb1608ff54edf9e50bd262ca4603181637..421644a2753f760c6f8320c105d7ef9c700b6a0b 100644
--- a/Play.Catalog/src/Play.Catalog.Service/Controllers/ItemsController.cs
+++ b/Play.Catalog/src/Play.Catalog.Service/Controllers/ItemsController.cs
@@ -12,16 +12,16 @@ using Play.Common;
 
 namespace Play.Catalog.Service.Controllers
 {
-    [ApiController]
-    [Route("items")]
-    public class ItemsController : ControllerBase
+    [ApiController] //The ApiController attribute enables a series of features that improve your REST api developer experience like having model validation errors automatically return a 400 Bad Request error or how to bind incoming requests into our method parameters.
+    [Route("items")] //The Route attribute specifies the URL pattern that this controller will map to. For instance, if we use “items” here, it means that this controller will handle routes that start with /items, like https://localhost:5001/items
+    public class ItemsController : ControllerBase  //ControllerBase provides many properties and methods useful when handling HTTP requests, like the BadRequest, NotFound and CreatedAtAction methods
     {
         private const string AdminRole = "Admin";
 
-        private readonly IRepository<Item> itemsRepository;
-        private readonly IPublishEndpoint publishEndpoint;
+        private readonly IRepository<Item> itemsRepository; //We are using the IRepository<T> interface to access the database see Play.Common/src/Play.Common/IRepository.cs
+        private readonly IPublishEndpoint publishEndpoint; //We are using the IPublishEndpoint interface to publish messages to the message broker see Play.Common/src/Play.Common/MassTransit/IMassTransitPublisher.cs
 
-        public ItemsController(IRepository<Item> itemsRepository, IPublishEndpoint publishEndpoint)
+        public ItemsController(IRepository<Item> itemsRepository, IPublishEndpoint publishEndpoint) //We are using dependency injection to get the repository and the publish endpoint 
         {
             this.itemsRepository = itemsRepository;
             this.publishEndpoint = publishEndpoint;
@@ -29,35 +29,35 @@ namespace Play.Catalog.Service.Controllers
 
         [HttpGet]
         [Authorize(Policies.Read)]
-        public async Task<ActionResult<IEnumerable<ItemDto>>> GetAsync()
+        public async Task<ActionResult<IEnumerable<ItemDto>>> GetAsync() //The ActionResult<T> type is a wrapper around the HTTP response that allows us to return a 200 OK with the items as the response body
         {
             var items = (await itemsRepository.GetAllAsync())
-                        .Select(item => item.AsDto());
+                        .Select(item => item.AsDto()); //We are using the AsDto extension method to convert the Item entity into an ItemDto
 
-            return Ok(items);
+            return Ok(items); // Ok is a method from ControllerBase that returns a 200 OK with the items as the response body
         }
 
         // GET /items/{id}
         [HttpGet("{id}")]
         [Authorize(Policies.Read)]
-        public async Task<ActionResult<ItemDto>> GetByIdAsync(Guid id)
+        public async Task<ActionResult<ItemDto>> GetByIdAsync(Guid id) //Because we are using the ApiController attribute, we can use the ActionResult<T> type, which will automatically return a 404 Not Found if the item is not found
         {
             var item = await itemsRepository.GetAsync(id);
 
-            if (item == null)
+            if (item == null) //If we don’t use the ApiController attribute, we would have to manually check if the item is null and return a 404 Not Found
             {
-                return NotFound();
+                return NotFound(); // NotFound is a method from ControllerBase that returns a 404 Not Found
             }
 
-            return item.AsDto();
+            return item.AsDto(); //We are using the AsDto extension method to convert the Item entity into an ItemDto
         }
 
         // POST /items
         [HttpPost]
-        [Authorize(Policies.Write)]
+        [Authorize(Policies.Write)] //We are using the Authorize attribute to specify that only users with the Admin role can access this endpoint
         public async Task<ActionResult<ItemDto>> PostAsync(CreateItemDto createItemDto)
         {
-            var item = new Item
+            var item = new Item  //We are creating a new Item entity from the CreateItemDto
             {
                 Name = createItemDto.Name,
                 Description = createItemDto.Description,
@@ -65,15 +65,15 @@ namespace Play.Catalog.Service.Controllers
                 CreatedDate = DateTimeOffset.UtcNow
             };
 
-            await itemsRepository.CreateAsync(item);
+            await itemsRepository.CreateAsync(item); //We are using the repository to create the item
 
             await publishEndpoint.Publish(new CatalogItemCreated(
                 item.Id,
                 item.Name,
                 item.Description,
-                item.Price));
+                item.Price)); //We are publishing the CatalogItemCreated event
 
-            return CreatedAtAction(nameof(GetByIdAsync), new { id = item.Id }, item);
+            return CreatedAtAction(nameof(GetByIdAsync), new { id = item.Id }, item); //We are returning a 201 Created with the item as the response body
         }
 
         // PUT /items/{id}
@@ -81,7 +81,7 @@ namespace Play.Catalog.Service.Controllers
         [Authorize(Policies.Write)]
         public async Task<IActionResult> PutAsync(Guid id, UpdateItemDto updateItemDto)
         {
-            var existingItem = await itemsRepository.GetAsync(id);
+            var existingItem = await itemsRepository.GetAsync(id); //We are using the repository to get the item by id
 
             if (existingItem == null)
             {
@@ -92,7 +92,7 @@ namespace Play.Catalog.Service.Controllers
             existingItem.Description = updateItemDto.Description;
             existingItem.Price = updateItemDto.Price;
 
-            await itemsRepository.UpdateAsync(existingItem);
+            await itemsRepository.UpdateAsync(existingItem); //
 
             await publishEndpoint.Publish(new CatalogItemUpdated(
                 existingItem.Id,
@@ -100,7 +100,7 @@ namespace Play.Catalog.Service.Controllers
                 existingItem.Description,
                 existingItem.Price));
 
-            return NoContent();
+            return NoContent(); //We are returning a 204 No Content
         }
 
         // DELETE /items/{id}
diff --git a/Play.Catalog/src/Play.Catalog.Service/Program.cs b/Play.Catalog/src/Play.Catalog.Service/Program.cs
index 9eeda958a28db2526bc8ba7ef726371455412c90..0717fb2eb0c39771d581254ebe7852256be72caa 100644
--- a/Play.Catalog/src/Play.Catalog.Service/Program.cs
+++ b/Play.Catalog/src/Play.Catalog.Service/Program.cs
@@ -18,112 +18,107 @@ using System.Collections.Generic;
 using Microsoft.AspNetCore.Http;
 
 
-
-
 namespace Play.Catalog.Service
 {
     public class Program
     {
         public static void Main(string[] args)
         {
-            CreateHostBuilder(args).Build().Run();
+            CreateHostBuilder(args).Build().Run(); //We are using the CreateHostBuilder method to create the host and run the app
         }
 
-        public static IHostBuilder CreateHostBuilder(string[] args) =>
-            Host.CreateDefaultBuilder(args)
-
-                .ConfigureWebHostDefaults(webBuilder =>
+        public static IHostBuilder CreateHostBuilder(string[] args) => //We are using the CreateHostBuilder method to create the host and run the app
+            Host.CreateDefaultBuilder(args) //
+                .ConfigureWebHostDefaults(webBuilder => //We are using the ConfigureWebHostDefaults method to configure the web host 
                 {
-                    webBuilder.UseStartup<Program>();
+                    webBuilder.UseStartup<Program>(); //We are using the UseStartup method to specify the startup class
                 });
 
 
-        private ServiceSettings serviceSettings;
+        private ServiceSettings serviceSettings; //We are using the ServiceSettings class to store the service settings see Play.Common/src/Play.Common/Settings/ServiceSettings.cs
 
-        public Program(IConfiguration configuration)
+        // Configuration of the services defined in the ConfigureServices method, allowing us to pass values as parameters
+        public Program(IConfiguration configuration) //We are using dependency injection to get the configuration see Play.Common/src/Play.Common/Settings/ServiceSettings.cs
         {
-            Configuration = configuration;
+            Configuration = configuration; //We are using the Configuration property to store the configuration
         }
 
         public IConfiguration Configuration { get; }
 
         // This method gets called by the runtime. Use this method to add services to the container.
-        public void ConfigureServices(IServiceCollection services)
+        public void ConfigureServices(IServiceCollection services) 
         {
             //Remove for real Production
             IdentityModelEventSource.ShowPII = true;
-
-
-
-            serviceSettings = Configuration.GetSection(nameof(ServiceSettings)).Get<ServiceSettings>();
-
-            services.AddMongo()
-                    .AddMongoRepository<Item>("items")
-                    .AddMassTransitWithMessageBroker(Configuration)
-                    .AddJwtBearerAuthentication();
-
-            services.AddAuthorization(options =>
+            //retrieves the values from appsettings.json
+            serviceSettings = Configuration.GetSection(nameof(ServiceSettings)).Get<ServiceSettings>(); //We are using dependency injection to get the ServiceSettings see Play.Common/src/Play.Common/Settings/ServiceSettings.cs
+            
+            services.AddMongo() //Brings the MongoDB into the app
+                    .AddMongoRepository<Item>("items") //Brings the MongoDB Repository into the app see Play.Common/src/Play.Common/MongoDB/Extensions.cs
+                    .AddMassTransitWithMessageBroker(Configuration) //Brings the MassTransit into the app see Play.Common/src/Play.Common/MassTransit/Extensions.cs
+                    .AddJwtBearerAuthentication(); //Brings the JwtBearerAuthentication into the app see Play.Common/src/Play.Common/Identity/Extensions.cs
+
+            services.AddAuthorization(options => //Brings the Authorization into the app see Play.Common/src/Play.Common/Identity/Extensions.cs
             {
-                options.AddPolicy(Policies.Read, policy =>
+                options.AddPolicy(Policies.Read, policy => //We are using the AddPolicy method to add the Read policy
                 {
-                    policy.RequireRole("Admin");
-                    policy.RequireClaim("scope", "catalog.readaccess", "catalog.fullaccess");
+                    policy.RequireRole("Admin"); //We are using the RequireRole method to specify that only users with the Admin role can access this policy
+                    policy.RequireClaim("scope", "catalog.readaccess", "catalog.fullaccess"); //We are using the RequireClaim method to specify that the user must have the catalog.readaccess or catalog.fullaccess scope
                 });
 
-                options.AddPolicy(Policies.Write, policy =>
+                options.AddPolicy(Policies.Write, policy =>   //We are using the AddPolicy method to add the Write policy
                 {
-                    policy.RequireRole("Admin");
-                    policy.RequireClaim("scope", "catalog.writeaccess", "catalog.fullaccess");
+                    policy.RequireRole("Admin"); //We are using the RequireRole method to specify that only users with the Admin role can access this policy
+                    policy.RequireClaim("scope", "catalog.writeaccess", "catalog.fullaccess"); //We are using the RequireClaim method to specify that the user must have the catalog.writeaccess or catalog.fullaccess scope
                 });
-
+               
 
             });
 
 
-            services.AddControllers(options =>
+            services.AddControllers(options => //Brings the Controllers into the app 
             {
-                options.SuppressAsyncSuffixInActionNames = false;
+                options.SuppressAsyncSuffixInActionNames = false; //We are using the SuppressAsyncSuffixInActionNames property to disable the async suffix in the controller actions
             });
 
 
-
+            //Swagger for the API
             services.AddSwaggerGen(options =>
             {
-                var scheme = new OpenApiSecurityScheme
+                var scheme = new OpenApiSecurityScheme //We are using the OpenApiSecurityScheme to configure the OAuth2 authentication
                 {
-                    In = ParameterLocation.Header,
-                    Name = "Authorization",
-                    Flows = new OpenApiOAuthFlows
+                    In = ParameterLocation.Header, //We are using the In property to specify that the token will be passed in the header
+                    Name = "Authorization", //We are using the Name property to specify that the header name will be Authorization
+                    Flows = new OpenApiOAuthFlows //We are using the Flows property to specify the OAuth2 flows
                     {
-                        AuthorizationCode = new OpenApiOAuthFlow
+                        AuthorizationCode = new OpenApiOAuthFlow //We are using the AuthorizationCode property to specify the Authorization Code flow
                         {
-                            AuthorizationUrl = new Uri(Configuration.GetSection("Auth:Swagger:AuthorizationUrl").Get<string>()),
-                            TokenUrl = new Uri(Configuration.GetSection("Auth:Swagger:TokenUrl").Get<string>())
+                            AuthorizationUrl = new Uri(Configuration.GetSection("Auth:Swagger:AuthorizationUrl").Get<string>()), //We are using the AuthorizationUrl property to specify the authorization URL
+                            TokenUrl = new Uri(Configuration.GetSection("Auth:Swagger:TokenUrl").Get<string>()) //We are using the TokenUrl property to specify the token URL
                         }
                     },
-                    Type = SecuritySchemeType.OAuth2
+                    Type = SecuritySchemeType.OAuth2 //We are using the Type property to specify that the type of the security scheme is OAuth2
                 };
 
-                options.AddSecurityDefinition("OAuth", scheme);
+                options.AddSecurityDefinition("OAuth", scheme); //We are using the AddSecurityDefinition method to add the OAuth2 security scheme
 
-                options.AddSecurityRequirement(new OpenApiSecurityRequirement
+                options.AddSecurityRequirement(new OpenApiSecurityRequirement //We are using the AddSecurityRequirement method to add the security requirements
                 {
                         {
                             new OpenApiSecurityScheme
                             {
-                                Reference = new OpenApiReference { Id = "OAuth", Type = ReferenceType.SecurityScheme }
+                                Reference = new OpenApiReference { Id = "OAuth", Type = ReferenceType.SecurityScheme } //We are using the Reference property to specify the reference to the OAuth2 security scheme
                             },
-                            new List<string> { }
+                            new List<string> { } //We are using the List<string> to specify the scopes
                         }
                 });
             });
-
-
-
-
+         
+            //Brings the HealthChecks into the app
             services.AddHealthChecks()
                     .AddMongoDb();
-                    
+            //Brings the Metric into the app
+            //Brings the OpenTelemetry into the app
             services.AddSeqLogging(Configuration)
                     .AddTracing(Configuration)
                     .AddMetrics(Configuration);     
@@ -132,52 +127,53 @@ namespace Play.Catalog.Service
         // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
         public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
         {
-            //Remove || env.IsProduction() for real Production. Made vor Docker 
+            //Remove || env.IsProduction() for real Production. Made vor Docker otherwise troubleshooting in Docker for Learning is difficult
             if (env.IsDevelopment() || env.IsProduction())
             {
-                app.UseDeveloperExceptionPage();
-                app.UseSwagger()
-                .UseSwaggerUI(options =>
+              
+                app.UseDeveloperExceptionPage(); //We are using the UseDeveloperExceptionPage method to show the developer exception page that contains the exception details
+                app.UseSwagger() //We are using the UseSwagger method to enable the Swagger middleware to show the Swagger UI
+                .UseSwaggerUI(options => 
                 {
-                    options.OAuthClientId("api-swagger");
+                    options.OAuthClientId("api-swagger"); //We are using the OAuthClientId method to specify the client ID
                     options.OAuthScopes("profile", "openid", "catalog.fullaccess",
                         "catalog.readaccess",
                         "catalog.writeaccess",
                         "inventory.fullaccess",
                         "trading.fullaccess",
                         "IdentityServerApi",
-                        "roles");
-                    options.OAuthUsePkce();
-                    options.OAuth2RedirectUrl("http://host.docker.internal:5002/swagger/oauth2-redirect.html");
+                        "roles"); //We are using the OAuthScopes method to specify the scopes
+                    options.OAuthUsePkce(); //We are using the OAuthUsePkce method to enable the PKCE flow that is required by IdentityServer because we are using the Authorization Code flow
+                    options.OAuth2RedirectUrl("http://host.docker.internal:5002/swagger/oauth2-redirect.html"); //We are using the OAuth2RedirectUrl method to specify the redirect URL that will be used by the Swagger UI
                     options.EnablePersistAuthorization();
 
                     //options.InjectStylesheet("/content/swagger-extras.css");
                 });
 
-           
+           // allows access to the API from other domains
             app.UseCors(builder =>
              {
                  var allowedOrigins = Configuration.GetSection("AllowedOrigins").Get<string[]>();
-                 builder.WithOrigins(allowedOrigins)
-                     .AllowAnyHeader()
-                     .AllowAnyMethod();
+                 builder.WithOrigins(allowedOrigins) //allows access to the API from other domains
+                     .AllowAnyHeader() 
+                     .AllowAnyMethod(); //
              });
         
 
         }
 
-        //app.UseHttpsRedirection();
+        //app.UseHttpsRedirection();  // Removed because in microservices we are in a private network and we don't need https redirection it makes the app slower
         app.UseOpenTelemetryPrometheusScrapingEndpoint();
-        app.UseRouting();
+        app.UseRouting(); //Routing is used to route the request to the correct controller
 
-        app.UseAuthentication();
-        app.UseAuthorization();
+        app.UseAuthentication(); //Authentication is used to authenticate the user
+        app.UseAuthorization(); //Authorization is used to authorize the user
 
 
             app.UseEndpoints(endpoints =>
             {
-                endpoints.MapControllers();
-                endpoints.MapPlayEconomyHealthChecks();
+                endpoints.MapControllers(); //MapControllers is used to map the controllers
+                endpoints.MapPlayEconomyHealthChecks(); //MapPlayEconomyHealthChecks is used to map the health checks
             });
         }
 
diff --git a/Play.Catalog/src/Play.Catalog.Service/appsettings.json b/Play.Catalog/src/Play.Catalog.Service/appsettings.json
index 800cbdfa38dcc6c7cff29442b4b069b19c3ff24d..283e9bf7f8a7ef945a343d27f9043aa979705f26 100644
--- a/Play.Catalog/src/Play.Catalog.Service/appsettings.json
+++ b/Play.Catalog/src/Play.Catalog.Service/appsettings.json
@@ -1,7 +1,7 @@
 {
   "Logging": {
     "LogLevel": {
-      "Default": "Information",
+      "Default": "Debug",
       "Microsoft": "Warning",
       "Microsoft.Hosting.Lifetime": "Information"
     }
@@ -34,6 +34,6 @@
     }
   },
   "AllowedHosts": "*",
-  "AllowedOrigins": ["http://host.docker.internal:3000","http://host.docker.internal:5000","http://host.docker.internal:5008"] 
+  "AllowedOrigins": ["http://host.docker.internal:3000","http://host.docker.internal:5000","http://host.docker.internal:5008","localhost"] 
   
 }
\ No newline at end of file
diff --git a/Play.Catalog/src/Play.Catalog.Service/nuget.config b/Play.Catalog/src/Play.Catalog.Service/nuget.config
index 317aade93721aa3c838096b0f3658df0a4a30de8..2af2dbb4b224431d3d68d727dd06ac4a9c1a9a79 100644
--- a/Play.Catalog/src/Play.Catalog.Service/nuget.config
+++ b/Play.Catalog/src/Play.Catalog.Service/nuget.config
@@ -2,12 +2,9 @@
 <configuration>
   <packageSources>
     <clear />
-<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
-                           
+<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />                    
   
     <add key="Play.Common" value="https://git.gibb.ch/api/v4/projects/5940/packages/nuget/index.json" />
   </packageSources>
 
-   
-  
 </configuration>
\ No newline at end of file
diff --git a/Play.Common/src/Play.Common/MongoDB/Extensions.cs b/Play.Common/src/Play.Common/MongoDB/Extensions.cs
index aa52bf50c2f4fd4f5b7a5182e3df15e8b3c506a5..14a3e363e5c4e11c9cc687517d5e706003c1ddd4 100644
--- a/Play.Common/src/Play.Common/MongoDB/Extensions.cs
+++ b/Play.Common/src/Play.Common/MongoDB/Extensions.cs
@@ -10,10 +10,10 @@ namespace Play.Common.MongoDB
 {
     public static class Extensions
     {
-        public static IServiceCollection AddMongo(this IServiceCollection services)
+        public static IServiceCollection AddMongo(this IServiceCollection services) //We are using dependency injection to get the database and the collection name 
         {
-            BsonSerializer.RegisterSerializer(new GuidSerializer(BsonType.String));
-            BsonSerializer.RegisterSerializer(new DateTimeOffsetSerializer(BsonType.String));
+            BsonSerializer.RegisterSerializer(new GuidSerializer(BsonType.String)); //We are registering the GuidSerializer to serialize the Guid as a string instead of an object 
+            BsonSerializer.RegisterSerializer(new DateTimeOffsetSerializer(BsonType.String)); //We are registering the DateTimeOffsetSerializer to serialize the DateTimeOffset as a string instead of an object
 
             services.AddSingleton(serviceProvider =>
             {
diff --git a/Play.Common/src/Play.Common/MongoDB/MongoRepository.cs b/Play.Common/src/Play.Common/MongoDB/MongoRepository.cs
index 6e91c2cfde09fe96cb223a491eae81aa816ab530..10821176377a527615b0fdc27c6878e4ad793558 100644
--- a/Play.Common/src/Play.Common/MongoDB/MongoRepository.cs
+++ b/Play.Common/src/Play.Common/MongoDB/MongoRepository.cs
@@ -7,12 +7,12 @@ using MongoDB.Driver;
 namespace Play.Common.MongoDB
 {
 
-    public class MongoRepository<T> : IRepository<T> where T : IEntity
+    public class MongoRepository<T> : IRepository<T> where T : IEntity //We are using the IRepository<T> interface to access the database see Play.Common/src/Play.Common/IRepository.cs
     {
-        private readonly IMongoCollection<T> dbCollection;
+        private readonly IMongoCollection<T> dbCollection; //We are using the IMongoCollection<T> interface to access the database 
         private readonly FilterDefinitionBuilder<T> filterBuilder = Builders<T>.Filter;
 
-        public MongoRepository(IMongoDatabase database, string collectionName)
+        public MongoRepository(IMongoDatabase database, string collectionName) //We are using dependency injection to get the database and the collection name see Play.Common/src/Play.Common/MongoDB/Extensions.cs
         {
             dbCollection = database.GetCollection<T>(collectionName);
         }
diff --git a/Play.Common/src/Play.Common/Play.Common.csproj b/Play.Common/src/Play.Common/Play.Common.csproj
index d4f819d01a311f86689d644a892f9993e8152fc5..2cb8e850f3e7a7fbd322a4188ef5e1a55481afa3 100644
--- a/Play.Common/src/Play.Common/Play.Common.csproj
+++ b/Play.Common/src/Play.Common/Play.Common.csproj
@@ -3,7 +3,7 @@
   <PropertyGroup>
     <TargetFramework>net7.0</TargetFramework>
     <PackageDescription>Common libraries used by Play Economy services.</PackageDescription>
-    <Authors>Julio Casal</Authors>
+    <Authors>Thomas Staub</Authors>
     <Company>.NET Microservices</Company>
   </PropertyGroup>
 
diff --git a/Play.Identity/src/Play.Identity.Service/appsettings.json b/Play.Identity/src/Play.Identity.Service/appsettings.json
index 76623c07fc97d6aef781a0df483d6b2024a4aea8..8ca6e65601050b8c7a34bfbdf094c7c229c807c6 100644
--- a/Play.Identity/src/Play.Identity.Service/appsettings.json
+++ b/Play.Identity/src/Play.Identity.Service/appsettings.json
@@ -149,7 +149,7 @@
         "PostLogoutRedirectUris":[
           "http://host.docker.internal:5008/"
         ],
-        "AllowedCorsOrigins" : ["http://host.docker.internal:5009","http://host.docker.internal:5008" ]
+        "AllowedCorsOrigins" : ["http://host.docker.internal:5009","http://host.docker.internal:5008"]
         
       },
       {
@@ -175,7 +175,7 @@
           "roles"
           
         ],
-        "AllowedCorsOrigins" : ["http://host.docker.internal:5009","http://host.docker.internal:5008","http://host.docker.internal:5002","http://host.docker.internal:5004","http://host.docker.internal:5006" ],
+        "AllowedCorsOrigins" : ["http://host.docker.internal:5009","http://host.docker.internal:5008","http://host.docker.internal:5002","http://host.docker.internal:5004","http://host.docker.internal:5006","http://host.docker.internal:5000" ],
         
         "AlwaysIncludeUserClaimsInIdToken" : true
       },