diff --git a/reviews_service/main.py b/reviews_service/main.py
index 17522db3609be1940d968607b834572d1b5fd51f..bba54cf7fae2748519ef272a9f65773619125ee5 100644
--- a/reviews_service/main.py
+++ b/reviews_service/main.py
@@ -18,35 +18,6 @@ app.add_middleware(
 )
 
 
-# # SQLite connection
-# parent_directory = Path(__file__).resolve().parent.parent
-# db_file_path = parent_directory / "my_ride.db"
-# # print(db_file_path)
-# conn = sqlite3.connect(db_file_path)
-# cursor = conn.cursor()
-
-# # Create the Reviews table if it doesn't exist
-# cursor.execute('''
-#     CREATE TABLE IF NOT EXISTS Reviews (
-#         review_id INTEGER PRIMARY KEY AUTOINCREMENT,
-#         user_id INT,
-#         bike_id INT,
-#         rating INT,
-#         comment TEXT,
-#         review_date DATETIME,
-#         FOREIGN KEY (user_id) REFERENCES Users(user_id),
-#         FOREIGN KEY (bike_id) REFERENCES Bikes(bike_id)
-#     )
-# ''')
-# conn.commit()
-
-# db_connection = mysql.connector.connect(
-#     host='database_mysql',  # or '127.0.0.1' for IPv4 loopback
-#     port='3306',  # Specify the port number here
-#     user='root',
-#     password='root_password',
-#     database='your_database'
-# )
 
 db_connection = mysql.connector.connect(
     host='database-1.cz0ucmk42cu5.us-east-1.rds.amazonaws.com',  # or '127.0.0.1' for IPv4 loopback
@@ -67,6 +38,21 @@ class Review(BaseModel):
     comment: str
     review_date: str
 
+class GetReview(BaseModel):
+    review_id:int
+    user_id: int
+    bike_id: int
+    rating: int
+    comment: str
+    review_date: str
+
+class UpdateReview(BaseModel):
+    user_id: Optional[int] = None
+    bike_id: Optional[int] = None
+    rating: Optional[int] = None
+    comment: Optional[str] = None
+    review_date: Optional[str] = None
+
 
 # Routes
 @app.post("/reviews/", response_model=Review)
@@ -79,7 +65,8 @@ async def create_review(review: Review):
         review.user_id, review.bike_id, review.rating, review.comment, review.review_date
     ))
     db_connection.commit()
-    return review
+    review_id = cursor.lastrowid  # Get the last inserted id
+    return {**review.dict(), "review_id": review_id}
 
 
 @app.get("/reviews/", response_model=List[Review])
@@ -99,27 +86,60 @@ async def read_reviews():
     return review_objects
 
 
-@app.get("/reviews/{review_id}", response_model=Review)
+@app.get("/reviews/{review_id}", response_model=GetReview)
 async def read_review(review_id: int):
-    cursor.execute('SELECT * FROM Reviews WHERE review_id = %s', (review_id,))
+    # Execute the query to fetch the review
+    cursor.execute('SELECT review_id, user_id, bike_id, rating, comment, review_date FROM Reviews WHERE review_id = %s', (review_id,))
     review = cursor.fetchone()
     if review is None:
         raise HTTPException(status_code=404, detail="Review not found")
-    return review
+
+    # Check if review_date is not None and format it as string
+    review_date_formatted = review[5].strftime('%Y-%m-%d %H:%M:%S') if review[5] else None
+
+    # Return the formatted review data using the GetReview model
+    return GetReview(
+        review_id=review[0],
+        user_id=review[1],
+        bike_id=review[2],
+        rating=review[3],
+        comment=review[4],
+        review_date=review_date_formatted
+    )
 
 
 @app.put("/reviews/{review_id}", response_model=Review)
-async def update_review(review_id: int, review: Review):
-    cursor.execute('''
-        UPDATE Reviews 
-        SET user_id = %s, bike_id = %s, rating = %s, comment = %s, review_date = %s
-        WHERE review_id = %s
-    ''', (
-        review.user_id, review.bike_id, review.rating, review.comment,
-        review.review_date, review_id
-    ))
+async def update_review(review_id: int, review_update: UpdateReview):
+    updates = []
+    values = []
+    for field, value in review_update.dict(exclude_none=True).items():
+        updates.append(f"{field} = %s")
+        values.append(value)
+
+    if not updates:
+        raise HTTPException(status_code=400, detail="No fields provided for update")
+
+    update_stmt = f"UPDATE Reviews SET {', '.join(updates)} WHERE review_id = %s"
+    values.append(review_id)
+    cursor.execute(update_stmt, tuple(values))
     db_connection.commit()
-    return review
+
+    # Fetch the updated review data
+    cursor.execute('SELECT review_id, user_id, bike_id, rating, comment, review_date FROM Reviews WHERE review_id = %s', (review_id,))
+    updated_review = cursor.fetchone()
+    if updated_review:
+        review_dict = {
+            'review_id': updated_review[0],
+            'user_id': updated_review[1],
+            'bike_id': updated_review[2],
+            'rating': updated_review[3],
+            'comment': updated_review[4],
+            'review_date': updated_review[5].strftime('%Y-%m-%d %H:%M:%S') if updated_review[5] else None
+        }
+        return Review(**review_dict)
+    else:
+        raise HTTPException(status_code=404, detail="Error updating review.")
+
 
 
 @app.delete("/reviews/{review_id}")