diff --git a/app/bookings/routes.py b/app/bookings/routes.py
index 293918668cc68b8add30afc656ba957304ffc9b7..650eeea5eb5230606ccc28150be25faeb7d13539 100644
--- a/app/bookings/routes.py
+++ b/app/bookings/routes.py
@@ -1,6 +1,6 @@
 from flask import render_template, redirect, url_for
 from app.bookings import bp
-from app.models import Listings 
+from app.models import Listings, ListingImages 
 
 @bp.route('/home')
 def index():
@@ -12,5 +12,12 @@ def redirect_index():
 
 @bp.route('/listings')
 def listings():
+    listing_ids = []
     top_listings = Listings.get_top_listings(5)
-    return render_template('bookings/listings.html', top_listings=top_listings)
+    
+    for listing in top_listings:
+        listing_ids.append(listing.id)
+        
+    top_listing_images = ListingImages.get_selected_main_images(listing_ids)
+    
+    return render_template('bookings/listings.html', top_listings=top_listings, top_listing_images=top_listing_images)
diff --git a/app/models/__init__.py b/app/models/__init__.py
index e944908e51b64946bb66a68f07e8c91040f12bc8..144c367fd0b277965a379ac840d39fb779bc4177 100644
--- a/app/models/__init__.py
+++ b/app/models/__init__.py
@@ -1,3 +1,4 @@
 #Importing database models
 from .user import User
-from .listings import Listings
\ No newline at end of file
+from .listings import Listings
+from .listing_images import ListingImages 
\ No newline at end of file
diff --git a/app/models/listing_images.py b/app/models/listing_images.py
index 7929183f0fcc3193a451226f201815d5caecd02c..fc505e2cb6a2ddac40a307853ae26a9da9fa0a15 100644
--- a/app/models/listing_images.py
+++ b/app/models/listing_images.py
@@ -4,11 +4,20 @@ from app import db
 class ListingImages(db.Model):
     __tablename__ = 'listing_images'
 
-    id = db.Column(db.Integer(), nullable=False, primary_key=True),
-    listing_id = db.Column(db.Integer(), nullable=False),
-    image_location = db.Column(db.String(255), nullable=False),
+    id = db.Column(db.Integer(), nullable=False, primary_key=True)
+    listing_id = db.Column(db.Integer(), nullable=False)
+    image_location = db.Column(db.String(255), nullable=False)
     image_description = db.Column(db.String(255), nullable=True)
+    main_image = db.Column(db.SmallInteger(), nullable=False)
 
     @classmethod
-    def get_all_listings(cls):
-        pass    
\ No newline at end of file
+    def get_selected_main_images(cls, listing_ids):
+        
+        listing_images = cls.query.filter(
+            cls.listing_id.in_(listing_ids), 
+            cls.main_image == 1 
+        ).all()
+        
+        ordered_listing_images = {listing.listing_id: listing.image_location for listing in listing_images}
+        
+        return ordered_listing_images
\ No newline at end of file
diff --git a/app/templates/bookings/listings.html b/app/templates/bookings/listings.html
index a832f2b4b57fa45d9c11a47db716fedcfc09bc56..2c991bcb3b4dc51e5a8279a3b4d3e79cc55d6743 100644
--- a/app/templates/bookings/listings.html
+++ b/app/templates/bookings/listings.html
@@ -13,7 +13,7 @@
                 <li class="slide-visible">
                     <div class="card shadow h-100">
                         <div class="ratio ratio-16x9">
-                            <img src="../uploads/listing_images/{{listing.}}.jpg" class="card-img-top" loading="lazy" alt="...">
+                            <img src="../uploads/listing_images/{{ top_listing_images[listing.id] }}.jpg" class="card-img-top" loading="lazy" alt="...">
                         </div>
                         <div class="card-body p-3 p-xl-4">
                             <h3 class="card-title h5">{{listing.destination_location}}</h3>
diff --git a/migrations/versions/68d89ef13132_add_main_listing_image_column.py b/migrations/versions/68d89ef13132_add_main_listing_image_column.py
new file mode 100644
index 0000000000000000000000000000000000000000..9ccafd816ab4ff5c783ae3c73477b67d5737efa0
--- /dev/null
+++ b/migrations/versions/68d89ef13132_add_main_listing_image_column.py
@@ -0,0 +1,23 @@
+"""Add main Listing Image Column
+
+Revision ID: 68d89ef13132
+Revises: 489bab9aaf4f
+Create Date: 2024-11-29 10:29:38.126811
+
+"""
+from alembic import op
+import sqlalchemy as sa
+from sqlalchemy.dialects import mysql
+
+# revision identifiers, used by Alembic.
+revision = '68d89ef13132'
+down_revision = '489bab9aaf4f'
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+        op.add_column(
+        'listing_images',
+        sa.Column('main_image', sa.Boolean(), nullable=False, server_default=sa.sql.expression.false())
+    )
\ No newline at end of file