diff --git a/src/app/HotelItem/HotelItem.component.html b/src/app/HotelItem/HotelItem.component.html
index 1a874b2..1065705 100644
--- a/src/app/HotelItem/HotelItem.component.html
+++ b/src/app/HotelItem/HotelItem.component.html
@@ -7,4 +7,5 @@
   }
 
  +Details
 
diff --git a/src/app/HotelItem/HotelItem.component.ts b/src/app/HotelItem/HotelItem.component.ts
index f7c2678..0e5d136 100644
--- a/src/app/HotelItem/HotelItem.component.ts
+++ b/src/app/HotelItem/HotelItem.component.ts
@@ -5,18 +5,21 @@ import { CurrencyPipe, NgIf } from "@angular/common";
 import { FormsModule } from "@angular/forms";
 import { StarRatingComponent } from "../star-rating/star-rating.component";
 import { HttpClient } from "@angular/common/http";
+import { RouterLink } from "@angular/router";
 
 @Component({
   selector: 'app-hotel-item',
   standalone: true,
   templateUrl: './HotelItem.component.html',
-  imports: [ChildComponent, CurrencyPipe, FormsModule, StarRatingComponent, NgIf],
+  imports: [ChildComponent, CurrencyPipe, FormsModule, StarRatingComponent, NgIf, RouterLink],
 })
 export class HotelItem {
 
   @Input() public hotel!: Hotel;
   public selectedLanguage?: string;
 
+  @Input() public isDetail: boolean = false;
+
   public languageChange(lang: string) {
     this.selectedLanguage = lang;
     console.log(this.selectedLanguage);
diff --git a/src/app/api/api.ts b/src/app/api/api.ts
index 24c788c..b330010 100644
--- a/src/app/api/api.ts
+++ b/src/app/api/api.ts
@@ -51,7 +51,6 @@ export class HotelData implements InMemoryDbService {
     return { hotels };
   }
 
-
   genId(hotels: Hotel[]): number {
     return hotels.length > 0 ? Math.max(...hotels.map(hotel => hotel.id)) + 1 : 1;
   }
diff --git a/src/app/app.component.html b/src/app/app.component.html
index f638679..346d4ad 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1,10 +1,4 @@
-
+Details
 
diff --git a/src/app/HotelItem/HotelItem.component.ts b/src/app/HotelItem/HotelItem.component.ts
index f7c2678..0e5d136 100644
--- a/src/app/HotelItem/HotelItem.component.ts
+++ b/src/app/HotelItem/HotelItem.component.ts
@@ -5,18 +5,21 @@ import { CurrencyPipe, NgIf } from "@angular/common";
 import { FormsModule } from "@angular/forms";
 import { StarRatingComponent } from "../star-rating/star-rating.component";
 import { HttpClient } from "@angular/common/http";
+import { RouterLink } from "@angular/router";
 
 @Component({
   selector: 'app-hotel-item',
   standalone: true,
   templateUrl: './HotelItem.component.html',
-  imports: [ChildComponent, CurrencyPipe, FormsModule, StarRatingComponent, NgIf],
+  imports: [ChildComponent, CurrencyPipe, FormsModule, StarRatingComponent, NgIf, RouterLink],
 })
 export class HotelItem {
 
   @Input() public hotel!: Hotel;
   public selectedLanguage?: string;
 
+  @Input() public isDetail: boolean = false;
+
   public languageChange(lang: string) {
     this.selectedLanguage = lang;
     console.log(this.selectedLanguage);
diff --git a/src/app/api/api.ts b/src/app/api/api.ts
index 24c788c..b330010 100644
--- a/src/app/api/api.ts
+++ b/src/app/api/api.ts
@@ -51,7 +51,6 @@ export class HotelData implements InMemoryDbService {
     return { hotels };
   }
 
-
   genId(hotels: Hotel[]): number {
     return hotels.length > 0 ? Math.max(...hotels.map(hotel => hotel.id)) + 1 : 1;
   }
diff --git a/src/app/app.component.html b/src/app/app.component.html
index f638679..346d4ad 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1,10 +1,4 @@
-
{{'hello' | uppercase | text}}
-
-@if (hotels[0].hotelName) {
-
-}
+
 
 
 
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index a021147..50508e2 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -8,70 +8,17 @@ import { inject } from '@angular/core';
 import { filter, from, last, map, Observable, scan } from 'rxjs';
 import { HttpClient } from '@angular/common/http';
 import { Hotel } from './HotelItem/hotel';
-
-interface User {
-  name: string;
-  age: number;
-}
+import { RouterOutlet } from '@angular/router';
 
 @Injectable({providedIn: "root"})
 @Component({
   selector: 'app-root',
   standalone: true,
-  imports: [NgFor, NgForOf, NgIf, HotelItem, SearchComponent, UpperCasePipe, TextPipe, AsyncPipe],
+  imports: [RouterOutlet, NgFor, NgForOf, NgIf, HotelItem, SearchComponent, UpperCasePipe, TextPipe, AsyncPipe],
   templateUrl: './app.component.html',
   providers: [HotelService],
   styleUrl: './app.component.css'
 })
 export class AppComponent {
-  public search: string = "";
-  public hotelService: HotelService = inject(HotelService);
-  public response: any = null;
-  public hotels: Array = [{} as Hotel];
-
-  constructor (private http: HttpClient) {
-  }
-
-  ngOnInit() {
-    this.http.get>("api/hotels").subscribe(res => {
-      this.hotels = res;
-    });
-
-    const users = [
-      { name: "Max", age: 21 },
-      { name: "Peter", age: 31 },
-      { name: "Hans", age: 13 },
-      { name: "Klaus", age: 51 },
-      { name: "Dieter", age: 1 },
-      { name: "Jan-Marlon", age: 3 },
-    ]
-
-    const stream: Observable = from(users);
-
-    stream.pipe(
-      filter((user) => user.age > 18),
-      scan((acc, user) => acc + user.age, 0),
-      map((ageSum, index) => ageSum / (index + 1)),
-      last(),
-    ).subscribe(console.log);
-
-    // const stream: Observable = from([5, 1, 2, 12, 5, 14, 17, 5, "testing"]);
-
-    // stream.pipe(
-    //  filter((value) => typeof value === "number"),
-    //  tap((value) => console.log("Zahl:" + value)),
-    //  filter((value: number) => value % 2 === 0),
-    //  tap((value) => console.log("Gerade Zahl: " + value)),
-    //  toArray(),
-    //).subscribe(console.log);
-  }
-
-  public test() {
-    console.log(this.search);
-  }
-
-  // public foundHotels = this.hotels.pipe(
-  //   filter((hotel) => hotel.hotelName.includes(this.search)),
-  // );
 }
 
diff --git a/src/app/app.config.ts b/src/app/app.config.ts
index a490314..55b7251 100644
--- a/src/app/app.config.ts
+++ b/src/app/app.config.ts
@@ -12,5 +12,9 @@ import { HotelData } from './api/api';
 registerLocaleData(localeDe, 'de-DE');
 registerLocaleData(localeCn, 'cn-CN');
 export const appConfig: ApplicationConfig = {
-  providers: [provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes), provideHttpClient(), importProvidersFrom(InMemoryWebApiModule.forRoot(HotelData))]
+  providers: [
+    provideZoneChangeDetection({ eventCoalescing: true }),
+    provideRouter(routes),
+    provideHttpClient(),
+    importProvidersFrom(InMemoryWebApiModule.forRoot(HotelData))]
 };
diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts
index dc39edb..eaaae27 100644
--- a/src/app/app.routes.ts
+++ b/src/app/app.routes.ts
@@ -1,3 +1,14 @@
 import { Routes } from '@angular/router';
+import { HotelDetailsComponent } from './hotel-details/hotel-details.component';
+import { HotelListComponent } from './hotel-list/hotel-list.component';
 
-export const routes: Routes = [];
+export const routes: Routes = [
+  {
+    path: "",
+    component: HotelListComponent,
+  },
+  {
+    path: "hotels/:id",
+    component: HotelDetailsComponent,
+  },
+];
diff --git a/src/app/hotel-details/hotel-details.component.css b/src/app/hotel-details/hotel-details.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/hotel-details/hotel-details.component.html b/src/app/hotel-details/hotel-details.component.html
new file mode 100644
index 0000000..3a1c644
--- /dev/null
+++ b/src/app/hotel-details/hotel-details.component.html
@@ -0,0 +1 @@
+
diff --git a/src/app/hotel-details/hotel-details.component.spec.ts b/src/app/hotel-details/hotel-details.component.spec.ts
new file mode 100644
index 0000000..94047d9
--- /dev/null
+++ b/src/app/hotel-details/hotel-details.component.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { HotelDetailsComponent } from './hotel-details.component';
+
+describe('HotelDetailsComponent', () => {
+  let component: HotelDetailsComponent;
+  let fixture: ComponentFixture;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [HotelDetailsComponent]
+    })
+    .compileComponents();
+
+    fixture = TestBed.createComponent(HotelDetailsComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/src/app/hotel-details/hotel-details.component.ts b/src/app/hotel-details/hotel-details.component.ts
new file mode 100644
index 0000000..ef39b15
--- /dev/null
+++ b/src/app/hotel-details/hotel-details.component.ts
@@ -0,0 +1,29 @@
+import { HttpClient } from '@angular/common/http';
+import { Component, OnInit } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
+import { Hotel } from '../HotelItem/hotel';
+import { CurrencyPipe } from '@angular/common';
+import { StarRatingComponent } from '../star-rating/star-rating.component';
+import { HotelItem } from '../HotelItem/HotelItem.component';
+
+@Component({
+  selector: 'app-hotel-details',
+  standalone: true,
+  imports: [CurrencyPipe, StarRatingComponent, HotelItem],
+  templateUrl: './hotel-details.component.html',
+  styleUrl: './hotel-details.component.css'
+})
+export class HotelDetailsComponent implements OnInit {
+  public hotel: any;
+
+  constructor(private route: ActivatedRoute, private http: HttpClient) { }
+
+  ngOnInit(): void {
+    const routeParams = this.route.snapshot.paramMap;
+    const hotelId = routeParams.get("id");
+
+    this.http.get("api/hotels/" + hotelId).subscribe(res => {
+      this.hotel = res;
+    });
+  }
+}
diff --git a/src/app/hotel-list/hotel-list.component.css b/src/app/hotel-list/hotel-list.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/hotel-list/hotel-list.component.html b/src/app/hotel-list/hotel-list.component.html
new file mode 100644
index 0000000..8f8ec24
--- /dev/null
+++ b/src/app/hotel-list/hotel-list.component.html
@@ -0,0 +1,7 @@
+{{'hello' | uppercase | text}}
+
+@if (hotels[0].hotelName) {
+
+}
diff --git a/src/app/hotel-list/hotel-list.component.spec.ts b/src/app/hotel-list/hotel-list.component.spec.ts
new file mode 100644
index 0000000..ecc4715
--- /dev/null
+++ b/src/app/hotel-list/hotel-list.component.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { HotelListComponent } from './hotel-list.component';
+
+describe('HotelListComponent', () => {
+  let component: HotelListComponent;
+  let fixture: ComponentFixture;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [HotelListComponent]
+    })
+    .compileComponents();
+
+    fixture = TestBed.createComponent(HotelListComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/src/app/hotel-list/hotel-list.component.ts b/src/app/hotel-list/hotel-list.component.ts
new file mode 100644
index 0000000..528c8ce
--- /dev/null
+++ b/src/app/hotel-list/hotel-list.component.ts
@@ -0,0 +1,73 @@
+import { CommonModule, NgFor, NgIf, UpperCasePipe } from '@angular/common';
+import { Component, inject } from '@angular/core';
+import { TextPipe } from '../../text.pipe';
+import { SearchComponent } from '../Search/search.component';
+import { HotelService } from '../Parent/services/hotel.service';
+import { Hotel } from '../HotelItem/hotel';
+import { HttpClient } from '@angular/common/http';
+import { filter, from, last, map, Observable, scan } from 'rxjs';
+import { HotelItem } from '../HotelItem/HotelItem.component';
+
+interface User {
+  name: string;
+  age: number;
+}
+
+@Component({
+  selector: 'app-hotel-list',
+  standalone: true,
+  imports: [UpperCasePipe, TextPipe, SearchComponent, HotelItem, NgFor, NgIf],
+  templateUrl: './hotel-list.component.html',
+  styleUrl: './hotel-list.component.css'
+})
+export class HotelListComponent {
+  public search: string = "";
+  public hotelService: HotelService = inject(HotelService);
+  public response: any = null;
+  public hotels: Array = [{} as Hotel];
+
+  constructor (private http: HttpClient) {
+  }
+
+  ngOnInit() {
+    this.http.get>("api/hotels").subscribe(res => {
+      this.hotels = res;
+    });
+
+    const users = [
+      { name: "Max", age: 21 },
+      { name: "Peter", age: 31 },
+      { name: "Hans", age: 13 },
+      { name: "Klaus", age: 51 },
+      { name: "Dieter", age: 1 },
+      { name: "Jan-Marlon", age: 3 },
+    ]
+
+    const stream: Observable = from(users);
+
+    stream.pipe(
+      filter((user) => user.age > 18),
+      scan((acc, user) => acc + user.age, 0),
+      map((ageSum, index) => ageSum / (index + 1)),
+      last(),
+    ).subscribe(console.log);
+
+    // const stream: Observable = from([5, 1, 2, 12, 5, 14, 17, 5, "testing"]);
+
+    // stream.pipe(
+    //  filter((value) => typeof value === "number"),
+    //  tap((value) => console.log("Zahl:" + value)),
+    //  filter((value: number) => value % 2 === 0),
+    //  tap((value) => console.log("Gerade Zahl: " + value)),
+    //  toArray(),
+    //).subscribe(console.log);
+  }
+
+  public test() {
+    console.log(this.search);
+  }
+
+  // public foundHotels = this.hotels.pipe(
+  //   filter((hotel) => hotel.hotelName.includes(this.search)),
+  // );
+}