diff --git a/vtm/src/org/oscim/layers/CustomRenderLayer.java b/vtm/src/org/oscim/layers/CustomRenderLayer.java
index 4dd06f8d..2058dda8 100644
--- a/vtm/src/org/oscim/layers/CustomRenderLayer.java
+++ b/vtm/src/org/oscim/layers/CustomRenderLayer.java
@@ -33,7 +33,7 @@ public class CustomRenderLayer extends Layer implements UpdateListener {
 
 		// functions running on MapRender Thread
 		@Override
-		protected void update(GLViewport v) {
+		public void update(GLViewport v) {
 			int currentState;
 
 			synchronized (this) {
@@ -49,7 +49,7 @@ public class CustomRenderLayer extends Layer implements UpdateListener {
 		}
 
 		@Override
-		protected void render(GLViewport v) {
+		public void render(GLViewport v) {
 		}
 	}
 
diff --git a/vtm/src/org/oscim/layers/tile/TileRenderer.java b/vtm/src/org/oscim/layers/tile/TileRenderer.java
index 32d8f11d..d1cc8ee3 100644
--- a/vtm/src/org/oscim/layers/tile/TileRenderer.java
+++ b/vtm/src/org/oscim/layers/tile/TileRenderer.java
@@ -78,7 +78,7 @@ public abstract class TileRenderer extends LayerRenderer {
 	 * synced with clearTiles, setOverdrawColor and setBitmapAlpha
 	 */
 	@Override
-	protected synchronized void update(GLViewport v) {
+	public synchronized void update(GLViewport v) {
 
 		if (mAlpha == 0) {
 			mTileManager.releaseTiles(mDrawTiles);
@@ -115,7 +115,7 @@ public abstract class TileRenderer extends LayerRenderer {
 	}
 
 	@Override
-	protected void render(GLViewport v) {
+	public void render(GLViewport v) {
 		/* render in update() so that tiles cannot vanish in between. */
 	}
 
diff --git a/vtm/src/org/oscim/layers/tile/VectorTileRenderer.java b/vtm/src/org/oscim/layers/tile/VectorTileRenderer.java
index daa16e2e..e3a291de 100644
--- a/vtm/src/org/oscim/layers/tile/VectorTileRenderer.java
+++ b/vtm/src/org/oscim/layers/tile/VectorTileRenderer.java
@@ -45,7 +45,7 @@ public class VectorTileRenderer extends TileRenderer {
 	protected int mDrawSerial;
 
 	@Override
-	protected synchronized void update(GLViewport v) {
+	public synchronized void update(GLViewport v) {
 		super.update(v);
 
 		/* discard depth projection from tilt, depth buffer
diff --git a/vtm/src/org/oscim/layers/tile/buildings/BuildingRenderer.java b/vtm/src/org/oscim/layers/tile/buildings/BuildingRenderer.java
index 6aec91fb..4104eefa 100644
--- a/vtm/src/org/oscim/layers/tile/buildings/BuildingRenderer.java
+++ b/vtm/src/org/oscim/layers/tile/buildings/BuildingRenderer.java
@@ -20,7 +20,7 @@ import org.slf4j.LoggerFactory;
 public class BuildingRenderer extends ExtrusionRenderer {
 	static final Logger log = LoggerFactory.getLogger(BuildingRenderer.class);
 
-	private final TileRenderer mTileLayer;
+	private final TileRenderer mTileRenderer;
 	private final TileSet mTileSet;
 
 	private final int mZoomMin;
@@ -32,18 +32,18 @@ public class BuildingRenderer extends ExtrusionRenderer {
 	private long mAnimTime;
 	private boolean mShow;
 
-	public BuildingRenderer(TileRenderer tileRenderLayer, int zoomMin, int zoomMax,
+	public BuildingRenderer(TileRenderer tileRenderer, int zoomMin, int zoomMax,
 	        boolean mesh, boolean alpha) {
 		super(mesh, alpha);
 
 		mZoomMax = zoomMax;
 		mZoomMin = zoomMin;
-		mTileLayer = tileRenderLayer;
+		mTileRenderer = tileRenderer;
 		mTileSet = new TileSet();
 	}
 
 	@Override
-	protected boolean setup() {
+	public boolean setup() {
 		mAlpha = 0;
 		return super.setup();
 
@@ -89,10 +89,10 @@ public class BuildingRenderer extends ExtrusionRenderer {
 			return;
 		}
 
-		mTileLayer.getVisibleTiles(mTileSet);
+		mTileRenderer.getVisibleTiles(mTileSet);
 
 		if (mTileSet.cnt == 0) {
-			mTileLayer.releaseTiles(mTileSet);
+			mTileRenderer.releaseTiles(mTileSet);
 			setReady(false);
 			return;
 		}
@@ -177,7 +177,7 @@ public class BuildingRenderer extends ExtrusionRenderer {
 		//log.debug("active tiles: {}", mExtrusionLayerCnt);
 
 		if (activeTiles == 0) {
-			mTileLayer.releaseTiles(mTileSet);
+			mTileRenderer.releaseTiles(mTileSet);
 			setReady(false);
 			return;
 		}
@@ -189,7 +189,7 @@ public class BuildingRenderer extends ExtrusionRenderer {
 		super.render(v);
 
 		/* release lock on tile data */
-		mTileLayer.releaseTiles(mTileSet);
+		mTileRenderer.releaseTiles(mTileSet);
 	}
 
 	private static ExtrusionBuckets getLayer(MapTile t) {
diff --git a/vtm/src/org/oscim/layers/vector/AbstractVectorLayer.java b/vtm/src/org/oscim/layers/vector/AbstractVectorLayer.java
index 0eecc25e..25192667 100644
--- a/vtm/src/org/oscim/layers/vector/AbstractVectorLayer.java
+++ b/vtm/src/org/oscim/layers/vector/AbstractVectorLayer.java
@@ -107,7 +107,7 @@ public abstract class AbstractVectorLayer<T> extends Layer implements UpdateList
 		MapPosition mTmpPos = new MapPosition();
 
 		@Override
-		protected void update(GLViewport v) {
+		public void update(GLViewport v) {
 
 			Task t = mWorker.poll();
 
diff --git a/vtm/src/org/oscim/renderer/BitmapRenderer.java b/vtm/src/org/oscim/renderer/BitmapRenderer.java
index 0d0325d8..ce64ee12 100644
--- a/vtm/src/org/oscim/renderer/BitmapRenderer.java
+++ b/vtm/src/org/oscim/renderer/BitmapRenderer.java
@@ -54,7 +54,7 @@ public class BitmapRenderer extends BucketRenderer {
 	}
 
 	@Override
-	protected synchronized void update(GLViewport v) {
+	public synchronized void update(GLViewport v) {
 		if (!initialized) {
 			buckets.clear();
 
@@ -82,7 +82,7 @@ public class BitmapRenderer extends BucketRenderer {
 	}
 
 	@Override
-	protected synchronized void render(GLViewport v) {
+	public synchronized void render(GLViewport v) {
 		v.useScreenCoordinates(false, 8);
 		BitmapBucket.Renderer.draw(buckets.get(), v, 1, 1);
 	}
diff --git a/vtm/src/org/oscim/renderer/BucketRenderer.java b/vtm/src/org/oscim/renderer/BucketRenderer.java
index 07a1fbe1..41fd29ac 100644
--- a/vtm/src/org/oscim/renderer/BucketRenderer.java
+++ b/vtm/src/org/oscim/renderer/BucketRenderer.java
@@ -72,7 +72,7 @@ public class BucketRenderer extends LayerRenderer {
 	 * Copy initial Viewport position and compile buckets.
 	 */
 	@Override
-	protected void update(GLViewport v) {
+	public void update(GLViewport v) {
 		if (!mInititialzed) {
 			mMapPosition.copy(v.pos);
 			mInititialzed = true;
@@ -84,7 +84,7 @@ public class BucketRenderer extends LayerRenderer {
 	 * Render all 'buckets'
 	 */
 	@Override
-	protected synchronized void render(GLViewport v) {
+	public synchronized void render(GLViewport v) {
 		MapPosition layerPos = mMapPosition;
 
 		GLState.test(false, false);
diff --git a/vtm/src/org/oscim/renderer/ExtrusionRenderer.java b/vtm/src/org/oscim/renderer/ExtrusionRenderer.java
index 03a35a50..e66258a0 100644
--- a/vtm/src/org/oscim/renderer/ExtrusionRenderer.java
+++ b/vtm/src/org/oscim/renderer/ExtrusionRenderer.java
@@ -56,7 +56,7 @@ public abstract class ExtrusionRenderer extends LayerRenderer {
 	}
 
 	@Override
-	protected boolean setup() {
+	public boolean setup() {
 		if (mMode == 0)
 			mShader = new Shader("extrusion_layer_ext");
 		else
diff --git a/vtm/src/org/oscim/renderer/GridRenderer.java b/vtm/src/org/oscim/renderer/GridRenderer.java
index e0369038..4d6595ac 100644
--- a/vtm/src/org/oscim/renderer/GridRenderer.java
+++ b/vtm/src/org/oscim/renderer/GridRenderer.java
@@ -110,7 +110,7 @@ public class GridRenderer extends BucketRenderer {
 	}
 
 	@Override
-	protected void update(GLViewport v) {
+	public void update(GLViewport v) {
 		/* scale coordinates relative to current 'zoom-level' to
 		 * get the position as the nearest tile coordinate */
 		int z = 1 << v.pos.zoomLevel;
diff --git a/vtm/src/org/oscim/renderer/LayerRenderer.java b/vtm/src/org/oscim/renderer/LayerRenderer.java
index 729c19f7..307d0c13 100644
--- a/vtm/src/org/oscim/renderer/LayerRenderer.java
+++ b/vtm/src/org/oscim/renderer/LayerRenderer.java
@@ -48,7 +48,7 @@ public abstract class LayerRenderer {
 	/**
 	 * 0. Called on GL Thread before first update().
 	 */
-	protected boolean setup() {
+	public boolean setup() {
 		return true;
 	}
 
@@ -62,7 +62,7 @@ public abstract class LayerRenderer {
 	 * @param matrices contains the current view- and projection-matrices
 	 *            and 'mvp' matrix for temporary use.
 	 */
-	protected abstract void update(GLViewport viewport);
+	public abstract void update(GLViewport viewport);
 
 	/**
 	 * 2. Draw layer: called by MapRenderer when isReady == true.
@@ -72,6 +72,6 @@ public abstract class LayerRenderer {
 	 *            'matrices.mvp' is for temporary use to build the model-
 	 *            view-projection to set as uniform.
 	 */
-	protected abstract void render(GLViewport viewport);
+	public abstract void render(GLViewport viewport);
 
 }