diff --git a/pom.xml b/pom.xml
index 36ed0435a4b0e2699460490a6380d19cb61975b7..5ca5dedc2ffbf5473d6e8863e458696bf1ea197b 100755
--- a/pom.xml
+++ b/pom.xml
@@ -15,10 +15,10 @@
     <url>http://maven.apache.org</url>
 
     <repositories>
-        <!--repository>
+        <repository>
             <id>jitpack.io</id>
             <url>https://jitpack.io</url>
-        </repository-->
+        </repository>
         <repository>
             <id>mvnrepository.com</id>
             <url>https://mvnrepository.com</url>
@@ -189,7 +189,7 @@
         <dependency>
             <groupId>org.locationtech.jts</groupId>
             <artifactId>jts-core</artifactId>
-            <version>1.16.0</version>
+            <version>1.16.1</version>
             <type>jar</type>
         </dependency>
         <dependency>
@@ -281,7 +281,7 @@
         <dependency>
             <groupId>com.bedatadriven</groupId>
             <artifactId>jackson-datatype-jts</artifactId>
-            <version>2.2</version>
+            <version>2.4</version>
         </dependency>
     </dependencies>
 
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java b/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
index b23cbba09fd738c973e9d6d39bfa07e39c2fa37b..b6553a330107a34e6044e20f79c61881e5aa0b4d 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
@@ -597,7 +597,7 @@ public class ForecastBean {
                 {
                     ex.printStackTrace();
                 }*/
-                    Response resp = this.getManagerResource().runModel(config.getModelId(), request);                
+                    Response resp = this.getManagerResource().runModel(config.getModelId(), request);         
                     if(resp.getStatus() == Response.Status.OK.getStatusCode())
                     {
                         //System.out.println(resp.readEntity(String.class));
diff --git a/src/main/java/no/nibio/vips/logic/entity/ForecastResult.java b/src/main/java/no/nibio/vips/logic/entity/ForecastResult.java
index f345707d5d904e7c507ef92579bb14b61b422780..d886aa58f9cddabeb469808aa503ddd3ccbf970a 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ForecastResult.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ForecastResult.java
@@ -45,6 +45,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import no.nibio.vips.logic.entity.helpers.ForecastResultSerializer;
 import org.locationtech.jts.geom.Geometry;
 
 
@@ -62,6 +64,7 @@ import org.locationtech.jts.geom.Geometry;
     @NamedQuery(name = "ForecastResult.findByForecastConfigurationIdAndPeriod", query = "SELECT f FROM ForecastResult f WHERE f.forecastConfigurationId = :forecastConfigurationId AND f.validTimeStart BETWEEN :timeStart AND :timeEnd ORDER BY f.validTimeStart ASC"),
     @NamedQuery(name = "ForecastResult.findByValidTimeStart", query = "SELECT f FROM ForecastResult f WHERE f.validTimeStart = :validTimeStart ORDER BY f.validTimeStart ASC"),
     @NamedQuery(name = "ForecastResult.findByWarningStatus", query = "SELECT f FROM ForecastResult f WHERE f.warningStatus = :warningStatus ORDER BY f.validTimeStart ASC")})
+@JsonSerialize(using=ForecastResultSerializer.class)
 public class ForecastResult implements Serializable, Comparable{
     private static final long serialVersionUID = 1L;
     @Id
diff --git a/src/main/java/no/nibio/vips/logic/entity/helpers/ForecastResultSerializer.java b/src/main/java/no/nibio/vips/logic/entity/helpers/ForecastResultSerializer.java
new file mode 100644
index 0000000000000000000000000000000000000000..4b7b7655622b93f178eea630bf370e57ea14d883
--- /dev/null
+++ b/src/main/java/no/nibio/vips/logic/entity/helpers/ForecastResultSerializer.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2018 NIBIO <http://www.nibio.no/>. 
+ * 
+ * This file is part of VIPSCommon.
+ * VIPSCommon is free software: you can redistribute it and/or modify
+ * it under the terms of the NIBIO Open Source License as published by 
+ * NIBIO, either version 1 of the License, or (at your option) any
+ * later version.
+ * 
+ * VIPSCommon is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * NIBIO Open Source License for more details.
+ * 
+ * You should have received a copy of the NIBIO Open Source License
+ * along with VIPSCommon.  If not, see <http://www.nibio.no/licenses/>.
+ * 
+ */
+
+package no.nibio.vips.logic.entity.helpers;
+
+import com.bedatadriven.jackson.datatype.jts.JtsModule;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import org.locationtech.jts.geom.GeometryFactory;
+import org.locationtech.jts.geom.LineString;
+import org.locationtech.jts.geom.Point;
+import org.locationtech.jts.geom.Polygon;
+import java.io.IOException;
+import no.nibio.vips.gis.GISUtil;
+import no.nibio.vips.logic.entity.ForecastResult;
+
+/**
+ * Unfortunately, we have to do this, since Resteasy does not currently support the org.locationtech.jts package
+ * Ref http://www.baeldung.com/jackson-custom-serialization
+ * @copyright 2019 <a href="http://www.nibio.no/">NIBIO</a>
+ * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
+ */
+public class ForecastResultSerializer extends StdSerializer<ForecastResult>{
+    ObjectMapper objectMapper;
+    GeometryFactory gf;
+    GISUtil gisUtil;
+    public ForecastResultSerializer() {
+        this(null);
+        this.gisUtil = new GISUtil();
+    }
+   
+    public ForecastResultSerializer(Class<ForecastResult> t) {
+        super(t);
+        this.objectMapper = new ObjectMapper();
+        this.objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
+        this.objectMapper.registerModule(new JtsModule());
+    }
+    
+    @Override
+    public void serialize(ForecastResult t, JsonGenerator jg, SerializerProvider sp) throws IOException {
+        jg.writeStartObject();
+        jg.writeStringField("validTimeStart", this.objectMapper.writeValueAsString(t.getValidTimeStart()).replaceAll("\"", ""));
+        jg.writeStringField("validTimeEnd", this.objectMapper.writeValueAsString(t.getValidTimeEnd()).replaceAll("\"", ""));
+        String geoJSON = t.getValidGeometry() == null ? "null" 
+                : t.getValidGeometry().getGeometryType().equals("Point") ? objectMapper.writeValueAsString(this.gisUtil.getVividPoint((Point) t.getValidGeometry()))
+                : t.getValidGeometry().getGeometryType().equals("LineString") ? objectMapper.writeValueAsString((LineString) t.getValidGeometry())
+                :t.getValidGeometry().getGeometryType().equals("Polygon") ? objectMapper.writeValueAsString((Polygon) t.getValidGeometry())
+                : "null";
+        
+        //jg.writeObjectField("validGeometry", t.getValidGeometry());
+        //System.out.println(geoJSON);
+        jg.writeRaw(",\"validGeometry\":" + geoJSON);
+        //
+        jg.writeNumberField("warningStatus", t.getWarningStatus());
+        jg.writeNumberField("forecastResultId", t.getForecastResultId());
+        jg.writeNumberField("forecastConfigurationId", t.getForecastConfigurationId());
+        //System.out.println(t.getAllValues());
+        jg.writeRaw(",\"allValues\": " + t.getAllValues());
+        jg.writeRaw(",\"keys\": [" + "\"" + String.join("\",\"", t.getKeys()) + "\"]");
+        jg.writeEndObject();
+    }
+    
+    
+
+}
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java b/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java
index 215afe76a8723cec5371612d9524323dced4a5d8..56c591f0307468b50ef91b2840ba2de2caf7cd66 100644
--- a/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java
@@ -34,6 +34,7 @@ import java.util.stream.Stream;
 import no.nibio.vips.entity.ModelConfiguration;
 import no.nibio.vips.entity.PointWeatherObservationList;
 import no.nibio.vips.entity.WeatherObservation;
+import no.nibio.vips.gis.CoordinateProxy;
 import no.nibio.vips.logic.entity.ForecastConfiguration;
 import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
 import no.nibio.vips.logic.scheduling.model.ModelRunPreprocessor;
@@ -66,7 +67,7 @@ public class ZymoseptoriaSimpleRiskGridModelPreprocessor extends ModelRunPreproc
         WeatherUtil wUtil = new WeatherUtil();
         for(PointOfInterestWeatherStation station:stations)
         {
-            Coordinate coordinate = new Coordinate(station.getPointOfInterest().getLongitude(), station.getPointOfInterest().getLatitude());
+            CoordinateProxy coordinate = new CoordinateProxy(station.getPointOfInterest().getLongitude(), station.getPointOfInterest().getLatitude());
             List<WeatherObservation> stationObs = getStationObs(station, configuration);
             
             try