diff --git a/src/main/java/Team5/SmartTowns/Data/Town.java b/src/main/java/Team5/SmartTowns/Data/Town.java
index aa0b7cd6ba2f03dc006c45e46fc73168548548d4..22b7a435d692ddf234ce0f3735811830680bed34 100644
--- a/src/main/java/Team5/SmartTowns/Data/Town.java
+++ b/src/main/java/Team5/SmartTowns/Data/Town.java
@@ -1,2 +1,20 @@
-package Team5.SmartTowns.Data;public class Town {
+package Team5.SmartTowns.Data;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+@AllArgsConstructor
+public class Town {
+    private String townName;
+    private Integer townTrailNumber;
+
+
+    public String getTownName() {
+        return townName;
+    }
+
+    public Integer getTownTrailNumber() {
+        return townTrailNumber;
+    }
 }
diff --git a/src/main/java/Team5/SmartTowns/Data/TownRepository.java b/src/main/java/Team5/SmartTowns/Data/TownRepository.java
index dd5cb04a566811605cbbc0c1b7a23b82b9564aff..ea6255b4e56753683c5643027590dca92197e298 100644
--- a/src/main/java/Team5/SmartTowns/Data/TownRepository.java
+++ b/src/main/java/Team5/SmartTowns/Data/TownRepository.java
@@ -1,2 +1,8 @@
-package Team5.SmartTowns.Data;public class TownRepository {
+package Team5.SmartTowns.Data;
+
+import java.util.List;
+
+public interface TownRepository {
+    List<Town> getAllTowns();
+    void addTown(Town town);
 }
diff --git a/src/main/java/Team5/SmartTowns/Data/TownRepositoryJDBC.java b/src/main/java/Team5/SmartTowns/Data/TownRepositoryJDBC.java
index f40cb51fa8ca8c60f7a228b8f511bd9e5185733b..89436f4d6bb6f11d2ecca82e64b7bef945878d8e 100644
--- a/src/main/java/Team5/SmartTowns/Data/TownRepositoryJDBC.java
+++ b/src/main/java/Team5/SmartTowns/Data/TownRepositoryJDBC.java
@@ -1,2 +1,37 @@
-package Team5.SmartTowns.Data;public class TownRepositoryJDBC {
+package Team5.SmartTowns.Data;
+
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public class TownRepositoryJDBC implements TownRepository{
+
+    private JdbcTemplate jdbc;
+    private RowMapper<Town> townMapper;
+
+    public TownRepositoryJDBC(JdbcTemplate aJdbc) {
+        this.jdbc = aJdbc;
+        setTownMapper();
+    }
+    private void setTownMapper(){
+        townMapper = (rs, i) -> new Town(
+                rs.getString("townName"),
+                rs.getInt("townTrailNumber")
+        );
+    }
+    public List<Town> getAllTowns(){
+        String sql= "SELECT * FROM towns";
+        return jdbc.query(sql, townMapper);
+    }
+
+    @Override // intended implementation at current: user data from templates/Landmarks/LandmarkFormTh.html is added to the Location table
+    public void addTown(Town town) {
+        String sql = "insert into towns( townName,townTrailNumber) values (?,?)";
+
+        jdbc.update(sql,town.getTownName(),town.getTownTrailNumber());
+    }
+
 }
diff --git a/src/main/java/Team5/SmartTowns/Towns/TownController.java b/src/main/java/Team5/SmartTowns/Towns/TownController.java
index dfdb9ae919f0bdb386e7dd087473708375803475..be04c550cc84ca4ef04dd2147472bc6541be4659 100644
--- a/src/main/java/Team5/SmartTowns/Towns/TownController.java
+++ b/src/main/java/Team5/SmartTowns/Towns/TownController.java
@@ -1,6 +1,11 @@
 package Team5.SmartTowns.Towns;
 
+import Team5.SmartTowns.Data.Location;
+import Team5.SmartTowns.Data.Town;
+import Team5.SmartTowns.Data.TownRepository;
+import Team5.SmartTowns.Data.locationRepository;
 import Team5.SmartTowns.Landmarks.Landmarks;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.servlet.ModelAndView;
@@ -9,6 +14,10 @@ import java.util.List;
 
 @Controller
 public class TownController {
+    @Autowired
+    private Team5.SmartTowns.Data.locationRepository locationRepository;
+    @Autowired
+    private Team5.SmartTowns.Data.TownRepository townRepository;
 
     @GetMapping("/home")
     public ModelAndView getTownList(){
@@ -20,12 +29,19 @@ public class TownController {
 
     }
 
-//    @GetMapping("/home/town")
-//    public ModelAndView getATownTrailsList(){
-//        ModelAndView modelAndView = new ModelAndView("userTrails/userTrailsTemplate");
-//        modelAndView.addObject("townStuff", a);
-//        return modelAndView;
-//    }
-//
+    @GetMapping("/home/town")
+    public ModelAndView getATownTrailsList(){
+        ModelAndView modelAndView = new ModelAndView("userTrails/userTrailsTemplate");
+        TownStorage townsCurrent= new TownStorage().getInstance();
+        List<Towns> towns = townsCurrent.getTownList();
+        List<Town> Towns = townRepository.getAllTowns();
+        modelAndView.addObject("towns", Towns);
+        List<Location> Locations = locationRepository.getAllLocation();
+        modelAndView.addObject("locations", Locations);
+        return modelAndView;
+    }
+
+    public List<Location> filterByLocationForTrails(List<Location>)
+
 
 }
diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql
index 3264a7811996c1673d74eeb9e0a255ffbb4ed1e1..2ca616e697c9dd139b3c35d8ed74da96083cd806 100644
--- a/src/main/resources/schema.sql
+++ b/src/main/resources/schema.sql
@@ -5,15 +5,9 @@ create table if not exists trails
     name varchar(128)
 )   engine=InnoDB;
 
-
 drop table if exists towns;
-create table if not exists towns
-(
-    townID bigint auto_increment primary key,
-    townName varchar(255),
-    trailNumber tinyint
 
-) engine=InnoDB;
+
 drop table if exists locations;
 
 create table if not exists locations
@@ -22,9 +16,8 @@ create table if not exists locations
     locationName varchar(128),
     locationEmail varchar(128),
     locationDescription longtext,
-    locationPlace bigint,
-    locationTrailID varchar(128),
-    foreign key (locationPlace) references towns(townID)
+    locationPlace varchar(255),
+    locationTrailID varchar(128)
 )   engine=InnoDB;
 
 drop table if exists users;
@@ -69,3 +62,10 @@ create table if not exists stickerProgress
     hasSticker boolean /*Has sticker or not*/
 ) engine=InnoDB;
 
+create table if not exists towns
+(
+    townID bigint auto_increment primary key,
+    townName varchar(255) ,
+    townTrailNumber tinyint
+
+) engine=InnoDB;
diff --git a/src/main/resources/templates/userTrails/userTrailsTemplate.html b/src/main/resources/templates/userTrails/userTrailsTemplate.html
index fb52c90854f10cda81af76db9611e5e08e06695e..65317b0ebf892a3a254a14f3f9f26e61dec7a3c0 100644
--- a/src/main/resources/templates/userTrails/userTrailsTemplate.html
+++ b/src/main/resources/templates/userTrails/userTrailsTemplate.html
@@ -5,10 +5,16 @@
     <title>Trails</title>
 </head>
 <body>
+<main>
+    <div th:each="location:${locations}"></div>
 
 
 
 
+</main>
+
+
+
 
 
 </body>
diff --git a/src/test/java/Team5/SmartTowns/SmartTownsApplicationTests.java b/src/test/java/Team5/SmartTowns/SmartTownsApplicationTests.java
index d9c15a4bf0557ca94619ec9f61d0d83d2180c7c3..c0d81b03cfee131647b72a7b5175e92ee655114a 100644
--- a/src/test/java/Team5/SmartTowns/SmartTownsApplicationTests.java
+++ b/src/test/java/Team5/SmartTowns/SmartTownsApplicationTests.java
@@ -1,13 +1,36 @@
 package Team5.SmartTowns;
 
+import Team5.SmartTowns.Towns.TownController;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 @SpringBootTest
 class SmartTownsApplicationTests {
 
+	private static TownController townController;
+	@Autowired
+	private Team5.SmartTowns.Data.locationRepository locationRepository;
+//	@BeforeAll
+//	public static void before(){}
+//		townController= new townController();
+//}
+
 	@Test
 	void contextLoads() {
 	}
 
+	@Test
+	public void whenFilteringTownsByLocationsReturnOneTown() {
+
+		townController.filterByLocationForTrails()
+
+
+		assertEquals(, townController.filterByLocationForTrails);
+	}
+
+
 }