Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/GraphicsUtils.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/GraphicsUtils.java	(revision 34431)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/GraphicsUtils.java	(revision 34431)
@@ -0,0 +1,147 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.plugins.streetside.utils;
+
+import java.awt.geom.AffineTransform;
+import java.awt.image.AffineTransformOp;
+import java.awt.image.BufferedImage;
+import java.text.MessageFormat;
+
+import org.apache.log4j.Logger;
+
+import javafx.application.Platform;
+import javafx.scene.image.PixelWriter;
+//import javafx.embed.swing.SwingFXUtils;
+//import javafx.scene.image.Image;
+import javafx.scene.image.WritableImage;
+
+@SuppressWarnings({ "restriction"})
+public class GraphicsUtils {
+
+  final static Logger logger = Logger.getLogger(GraphicsUtils.class);
+
+  private GraphicsUtils() {
+    // Private constructor to avoid instantiation
+  }
+
+	public static javafx.scene.image.Image convertBufferedImage2JavaFXImage(BufferedImage bf) {
+	  //Image res = SwingFXUtils.toFXImage(bf, null);
+	  long startTime = System.currentTimeMillis();
+		WritableImage res = null;
+		if (bf != null) {
+			res = new WritableImage(bf.getWidth(), bf.getHeight());
+			PixelWriter pw = res.getPixelWriter();
+			for (int x = 0; x < bf.getWidth(); x++) {
+				for (int y = 0; y < bf.getHeight(); y++) {
+					pw.setArgb(x, y, bf.getRGB(x, y));
+				}
+			}
+		}
+		return res;
+	}
+
+	public static class PlatformHelper {
+
+	  private PlatformHelper() {
+	    // Private constructor to avoid instantiation
+	  }
+
+	  public static void run(Runnable treatment) {
+            if(treatment == null) throw new IllegalArgumentException("The treatment to perform can not be null");
+
+            if(Platform.isFxApplicationThread()) treatment.run();
+            else Platform.runLater(treatment);
+        }
+    }
+
+	public static BufferedImage buildMultiTiledCubemapFaceImage(final BufferedImage[] tiles) {
+
+		long start = System.currentTimeMillis();
+
+	  BufferedImage res = null;
+
+		int pixelBuffer = StreetsideProperties.SHOW_HIGH_RES_STREETSIDE_IMAGERY.get()?2:1;
+
+		BufferedImage[] croppedTiles = cropMultiTiledImages(tiles, pixelBuffer);
+
+		int rows = StreetsideProperties.SHOW_HIGH_RES_STREETSIDE_IMAGERY.get()?4:2; //we assume the no. of rows and cols are known and each chunk has equal width and height
+        int cols = StreetsideProperties.SHOW_HIGH_RES_STREETSIDE_IMAGERY.get()?4:2;
+
+        int chunkWidth, chunkHeight;
+
+        chunkWidth = croppedTiles[0].getWidth();
+        chunkHeight = croppedTiles[0].getHeight();
+
+        //Initializing the final image
+        BufferedImage img = new BufferedImage(chunkWidth*cols, chunkHeight*rows, BufferedImage.TYPE_INT_ARGB);
+
+        int num = 0;
+        for (int i = 0; i < rows; i++) {
+            for (int j = 0; j < cols; j++) {
+        // TODO: unintended mirror image created with draw call - requires
+        // extra reversal step - fix!
+        img.createGraphics().drawImage(croppedTiles[num], chunkWidth * j, (chunkHeight * i), null);
+
+        int width = StreetsideProperties.SHOW_HIGH_RES_STREETSIDE_IMAGERY.get() ? 1014 : 510;
+        int height = width;
+
+        // BufferedImage for mirror image
+        res = new BufferedImage(
+          width,
+          height, BufferedImage.TYPE_INT_ARGB);
+
+        // TODO: mirror image
+        // Create mirror image pixel by pixel
+        for (int y = 0; y < height; y++) {
+          for (int lx = 0, rx = width - 1; lx < width; lx++, rx--) {
+            // lx starts from the left side of the image
+            // rx starts from the right side of the image
+            // lx is used since we are getting pixel from left side
+            // rx is used to set from right side
+            // get source pixel value
+            int p = img.getRGB(lx, y);
+
+            // set mirror image pixel value
+            res.setRGB(rx, y, p);
+          }
+        }
+        num++;
+      }
+    }
+
+    if (StreetsideProperties.DEBUGING_ENABLED.get()) {
+      logger
+        .debug(MessageFormat.format("Image concatenated in {0} millisecs.", (System.currentTimeMillis() - start)));
+    }
+    return res;
+	}
+
+	public static BufferedImage rotateImage(BufferedImage bufImg) {
+		AffineTransform tx = AffineTransform.getScaleInstance(-1, -1);
+	    tx.translate(-bufImg.getWidth(null), -bufImg.getHeight(null));
+	    AffineTransformOp op = new AffineTransformOp(tx,
+	        AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
+	    bufImg = op.filter(bufImg, null);
+	    return bufImg;
+	}
+
+	private static BufferedImage[] cropMultiTiledImages(BufferedImage[] tiles, int pixelBuffer) {
+
+		long start = System.currentTimeMillis();
+
+	  BufferedImage[] res = new BufferedImage[tiles.length];
+
+			for(int i=0; i<tiles.length;i++) {
+				if(StreetsideProperties.SHOW_HIGH_RES_STREETSIDE_IMAGERY.get()) {
+					res[i] = tiles[i].getSubimage(pixelBuffer, pixelBuffer, 256-pixelBuffer, 256-pixelBuffer);
+				} else {
+					res[i] = tiles[i].getSubimage(pixelBuffer, pixelBuffer, 256-pixelBuffer, 256-pixelBuffer);
+				}
+			}
+
+		if(StreetsideProperties.DEBUGING_ENABLED.get()) {
+			logger.debug(MessageFormat.format("Images cropped in {0} millisecs.", (System.currentTimeMillis()-start)));
+		}
+
+		return res;
+	}
+}
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideProperties.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideProperties.java	(revision 34430)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideProperties.java	(revision 34431)
@@ -24,5 +24,5 @@
   public static final IntegerProperty TILE_DOWNLOAD_THREAD_PAUSE_LEN_SEC = new IntegerProperty("streetside.tile-download-thread-pause-len-sec", 60);
   public static final BooleanProperty PREDOWNLOAD_CUBEMAPS = new BooleanProperty("streetside.predownload-cubemaps", false);
-  public static final BooleanProperty DEBUGING_ENABLED = new BooleanProperty("streetside.debugging-enabled", true);
+  public static final BooleanProperty DEBUGING_ENABLED = new BooleanProperty("streetside.debugging-enabled", false);
   public static final BooleanProperty DOWNLOAD_CUBEFACE_TILES_TOGETHER = new BooleanProperty("streetside.download-cubeface-tiles-together", false);
 
@@ -61,9 +61,9 @@
     new StringProperty("streetside.start-directory", System.getProperty("user.home"));
   public static final StringProperty URL_CLIENT_ID =
-    new StringProperty("streetside.url-clientid", System.getProperty("T1Fzd20xZjdtR0s1VDk5OFNIOXpYdzoxNDYyOGRkYzUyYTFiMzgz"));
+    new StringProperty("streetside.url-clientid", "T1Fzd20xZjdtR0s1VDk5OFNIOXpYdzoxNDYyOGRkYzUyYTFiMzgz");
   public static final StringProperty BING_MAPS_KEY =
-    new StringProperty("streetside.bing-maps-key", System.getProperty("AuftgJsO0Xs8Ts4M1xZUQJQXJNsvmh3IV8DkNieCiy3tCwCUMq76-WpkrBtNAuEm"));
+    new StringProperty("streetside.bing-maps-key", "AuftgJsO0Xs8Ts4M1xZUQJQXJNsvmh3IV8DkNieCiy3tCwCUMq76-WpkrBtNAuEm");
   public static final StringProperty TEST_BUBBLE_ID =
-    new StringProperty("streetside.test-bubble-id", System.getProperty("80848005"));
+    new StringProperty("streetside.test-bubble-id", "80848005");
 
   /**
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideURL.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideURL.java	(revision 34430)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideURL.java	(revision 34431)
@@ -43,8 +43,4 @@
 
 		public static URL searchStreetsideImages(Bounds bounds) {
-			return StreetsideURL.string2URL(StreetsideURL.STREETSIDE_BASE_URL, APIv3.queryStreetsideString(bounds));
-		}
-
-		public static URL searchStreetsideSequences(final Bounds bounds) {
 			return StreetsideURL.string2URL(StreetsideURL.STREETSIDE_BASE_URL, APIv3.queryStreetsideString(bounds));
 		}
@@ -299,8 +295,4 @@
 		}
 
-		if(StreetsideProperties.DEBUGING_ENABLED.get()) {
-		  logger.debug(MessageFormat.format("queryStreetsideBoundsString result: {0}", ret.toString()));
-		}
-
 		return ret.toString();
 	}
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideUtils.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideUtils.java	(revision 34430)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideUtils.java	(revision 34431)
@@ -8,8 +8,5 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
 import java.util.Calendar;
-import java.util.Iterator;
-import java.util.List;
 import java.util.Locale;
 import java.util.Set;
@@ -19,4 +16,5 @@
 import org.apache.commons.imaging.common.RationalNumber;
 import org.apache.commons.imaging.formats.tiff.constants.GpsTagConstants;
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -33,4 +31,6 @@
  */
 public final class StreetsideUtils {
+
+  final static Logger logger = Logger.getLogger(StreetsideUtils.class);
 
   private static final double MIN_ZOOM_SQUARE_SIDE = 0.002;
@@ -285,28 +285,3 @@
     MainApplication.getMap().statusLine.setHelpText(ret.toString());
   }
-
-  public static List<StreetsideAbstractImage> sortImagesInSequence(List<StreetsideAbstractImage> images) {
-    List<StreetsideAbstractImage> res = new ArrayList<StreetsideAbstractImage>();
-    if (images != null && images.size() > 0) {
-      res.add(images.get(0));
-      try {
-      images.remove(0);
-      String nextImageId = Long.toString(images.get(0).getNe());
-      if (nextImageId != null) {
-        Iterator<StreetsideAbstractImage> iter = images.iterator();
-        while (iter.hasNext()) {
-          StreetsideAbstractImage current = (StreetsideAbstractImage) iter.next();
-          if (nextImageId.equals(current.getId())) {
-            res.add(current);
-            images.remove(current);
-          }
-        }
-      }
-      } catch (java.lang.UnsupportedOperationException uoe) {
-        // ignore
-      }
-    }
-
-    return res;
-  }
 }
