http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java 
b/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
deleted file mode 100644
index 533ee14..0000000
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.qi4j.api.geometry.internal;
-
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.common.UseDefaults;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.injection.scope.Structure;
-import org.qi4j.api.injection.scope.This;
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.property.Property;
-import org.qi4j.api.structure.Module;
-import org.qi4j.api.value.ValueComposite;
-
-@Mixins(TGeometry.Mixin.class)
-public interface TGeometry extends ValueComposite
-{
-    enum TGEOMETRY_TYPE
-    {
-        POINT, MULTIPOINT, LINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON, 
FEATURE, FEATURECOLLECTION, INVALID
-    }
-
-    Property<TGEOMETRY_TYPE> geometryType();
-
-    @Optional
-    @UseDefaults
-    Property<String> CRS();
-    String getCRS();
-    void setCRS(String crs);
-
-    abstract Coordinate[] getCoordinates();
-
-    abstract int getNumPoints();
-
-    abstract boolean isEmpty();
-
-    TGEOMETRY_TYPE getType();
-
-    boolean isPoint();
-    boolean isPoint(TGeometry tGeometry);
-
-    boolean isMultiPoint();
-    boolean isMultiPoint(TGeometry tGeometry);
-
-    boolean isLineString();
-    boolean isLineString(TGeometry tGeometry);
-
-    boolean isMultiLineString();
-    boolean isMultiLineString(TGeometry tGeometry);
-
-    boolean isPolygon();
-    boolean isPolygon(TGeometry tGeometry);
-
-    boolean isMultiPolygon();
-    boolean isMultiPolygon(TGeometry tGeometry);
-
-    boolean isFeature();
-    boolean isFeature(TGeometry tGeometry);
-
-    boolean isFeatureCollection();
-    boolean isFeatureCollection(TGeometry tGeometry);
-
-    boolean isGeometry();
-    boolean isGeometry(Object tGeometry);
-
-
-
-    public abstract class Mixin implements TGeometry
-    {
-
-        @Structure
-        Module module;
-
-        @This
-        TGeometry self;
-
-        public String getCRS()
-        {
-            return self.CRS().get();
-        }
-
-        public void setCRS(String crs)
-        {
-            self.CRS().set(crs);
-        }
-
-
-        public int getNumPoints()
-        {
-            return 0;
-        }
-
-        public Coordinate[] getCoordinates()
-        {
-            throw new RuntimeException("Should never be called");
-        }
-
-        public boolean isEmpty()
-        {
-            throw new RuntimeException("Should never be called");
-        }
-
-        public TGEOMETRY_TYPE getType()
-        {
-            // "strong typing" - type & instanceOf must match
-            switch (self.geometryType().get())
-            {
-                case POINT:
-                    return self.isPoint() == false ? TGEOMETRY_TYPE.INVALID : 
TGEOMETRY_TYPE.POINT;
-                case MULTIPOINT:
-                    return self.isMultiPoint() == false ? 
TGEOMETRY_TYPE.INVALID : TGEOMETRY_TYPE.MULTIPOINT;
-                case LINESTRING:
-                    return self.isLineString() == false ? 
TGEOMETRY_TYPE.INVALID : TGEOMETRY_TYPE.LINESTRING;
-                case MULTILINESTRING:
-                    return self.isMultiLineString() == false ? 
TGEOMETRY_TYPE.INVALID : TGEOMETRY_TYPE.MULTILINESTRING;
-                case POLYGON:
-                    return self.isPolygon() == false ? TGEOMETRY_TYPE.INVALID 
: TGEOMETRY_TYPE.POLYGON;
-                case MULTIPOLYGON:
-                    return self.isMultiPolygon() == false ? 
TGEOMETRY_TYPE.INVALID : TGEOMETRY_TYPE.MULTIPOLYGON;
-                case FEATURE:
-                    return self.isFeature() == false ? TGEOMETRY_TYPE.INVALID 
: TGEOMETRY_TYPE.FEATURE;
-                case FEATURECOLLECTION:
-                    return self.isFeatureCollection() == false ? 
TGEOMETRY_TYPE.INVALID : TGEOMETRY_TYPE.FEATURECOLLECTION;
-                default:
-                    return TGEOMETRY_TYPE.INVALID;
-            }
-        }
-
-        public boolean isPoint()
-        {
-            return self instanceof TPoint ? true : false;
-        }
-        public boolean isPoint(TGeometry tGeometry)
-        {
-            return tGeometry instanceof TPoint ? true : false;
-        }
-
-        public boolean isMultiPoint()
-        {
-            return self instanceof TMultiPoint ? true : false;
-        }
-        public boolean isMultiPoint(TGeometry tGeometry)
-        {
-            return tGeometry instanceof TMultiPoint ? true : false;
-        }
-
-        public boolean isLineString()
-        {
-            return self instanceof TLineString ? true : false;
-        }
-        public boolean isLineString(TGeometry tGeometry)
-        {
-            return tGeometry instanceof TLineString ? true : false;
-        }
-
-        public boolean isMultiLineString()
-        {
-            return self instanceof TMultiLineString ? true : false;
-        }
-        public boolean isMultiLineString(TGeometry tGeometry)
-        {
-            return tGeometry instanceof TMultiLineString ? true : false;
-        }
-
-        public boolean isPolygon()
-        {
-            return self instanceof TPolygon ? true : false;
-        }
-        public boolean isPolygon(TGeometry tGeometry)
-        {
-            return tGeometry instanceof TPolygon ? true : false;
-        }
-
-        public boolean isMultiPolygon()
-        {
-            return self instanceof TMultiPolygon ? true : false;
-        }
-        public boolean isMultiPolygon(TGeometry tGeometry)
-        {
-            return tGeometry instanceof TMultiPolygon ? true : false;
-        }
-
-        public boolean isFeature()
-        {
-            return self instanceof TFeature ? true : false;
-        }
-        public boolean isFeature(TGeometry tGeometry)
-        {
-            return tGeometry instanceof TFeature ? true : false;
-        }
-
-        public boolean isFeatureCollection()
-        {
-            return self instanceof TFeatureCollection ? true : false;
-        }
-        public boolean isFeatureCollection(TGeometry tGeometry)
-        {
-            return tGeometry instanceof TFeatureCollection ? true : false;
-        }
-
-        public boolean isGeometry()
-        {
-            return self instanceof TGeometry ? true : false;
-        }
-        public boolean isGeometry(Object tGeometry)
-        {
-            return tGeometry instanceof TGeometry ? true : false;
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/geometry/internal/TLinearRing.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/TLinearRing.java 
b/core/api/src/main/java/org/qi4j/api/geometry/internal/TLinearRing.java
deleted file mode 100644
index 2b99f9a..0000000
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/TLinearRing.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.qi4j.api.geometry.internal;
-
-import org.qi4j.api.geometry.TLineString;
-import org.qi4j.api.injection.scope.This;
-import org.qi4j.api.mixin.Mixins;
-
-@Mixins(TLinearRing.Mixin.class)
-public interface TLinearRing extends TLineString
-{
-
-    boolean isValid();
-
-    public abstract class Mixin extends TLineString.Mixin implements 
TLinearRing //, TLineString
-    {
-        @This
-        TLinearRing self;
-
-        @Override
-        public boolean isValid()
-        {
-            if (self.getStartPoint() == null || self.getEndPoint() == null) 
return false;
-            return self.getStartPoint().compareTo(self.getEndPoint()) == 0 ? 
true : false;
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/geometry/internal/TShape.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/TShape.java 
b/core/api/src/main/java/org/qi4j/api/geometry/internal/TShape.java
deleted file mode 100644
index d56eb71..0000000
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/TShape.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.qi4j.api.geometry.internal;
-
-public interface TShape extends TGeometry
-{
-    // marking interface
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TCRSBuilder.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TCRSBuilder.java
 
b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TCRSBuilder.java
deleted file mode 100644
index e089b5a..0000000
--- 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TCRSBuilder.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.qi4j.api.geometry.internal.builders;
-
-import org.qi4j.api.geometry.TCRS;
-import org.qi4j.api.structure.Module;
-
-public class TCRSBuilder
-{
-
-    private Module module;
-    private TCRS geometry;
-
-
-    public TCRSBuilder(Module module)
-    {
-        this.module = module;
-        geometry = module.newValueBuilder(TCRS.class).prototype();
-    }
-
-    public TCRS crs(String crs)
-    {
-        return geometry.of(crs);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureBuilder.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureBuilder.java
 
b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureBuilder.java
deleted file mode 100644
index 7cce0bd..0000000
--- 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureBuilder.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.qi4j.api.geometry.internal.builders;
-
-import org.qi4j.api.geometry.TFeature;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-
-
-public class TFeatureBuilder
-{
-
-    private Module module;
-    private TFeature geometry;
-
-
-    public TFeatureBuilder(Module module)
-    {
-        this.module = module;
-        geometry = module.newValueBuilder(TFeature.class).prototype();
-    }
-
-
-    public TFeatureBuilder of(TGeometry feature)
-    {
-        geometry.of(feature);
-        return this;
-    }
-
-    public TFeatureBuilder addProperty(String name, String value)
-    {
-        geometry.addProperty(name, value);
-        return this;
-    }
-
-    public TFeature geometry()
-    {
-        return geometry;
-    }
-
-    public TFeature geometry(int srid)
-    {
-        return geometry();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureCollectionBuilder.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureCollectionBuilder.java
 
b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureCollectionBuilder.java
deleted file mode 100644
index fd27562..0000000
--- 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureCollectionBuilder.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.qi4j.api.geometry.internal.builders;
-
-import org.qi4j.api.geometry.TFeature;
-import org.qi4j.api.geometry.TFeatureCollection;
-import org.qi4j.api.structure.Module;
-
-import java.util.List;
-
-public class TFeatureCollectionBuilder
-{
-
-    private Module module;
-    private TFeatureCollection geometry;
-
-
-    public TFeatureCollectionBuilder(Module module)
-    {
-        this.module = module;
-        geometry = 
module.newValueBuilder(TFeatureCollection.class).prototype();
-    }
-
-    public TFeatureCollectionBuilder of(List<TFeature> features)
-    {
-        geometry.of(features);
-        return this;
-    }
-
-    public TFeatureCollectionBuilder of(TFeature... features)
-    {
-        geometry.of(features);
-        return this;
-    }
-
-    public TFeatureCollection geometry()
-    {
-        return geometry;
-    }
-
-    public TFeatureCollection geometry(int srid)
-    {
-        return geometry();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLineStringBuilder.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLineStringBuilder.java
 
b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLineStringBuilder.java
deleted file mode 100644
index 21b6f6d..0000000
--- 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLineStringBuilder.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.qi4j.api.geometry.internal.builders;
-
-import org.qi4j.api.geometry.TLineString;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.structure.Module;
-
-
-public class TLineStringBuilder
-{
-
-    private Module module;
-    private TLineString geometry;
-
-
-    public TLineStringBuilder(Module module)
-    {
-        this.module = module;
-        geometry = module.newValueBuilder(TLineString.class).prototype();
-    }
-
-
-    public TLineStringBuilder points(double[][] points)
-    {
-        for (double yx[] : points)
-        {
-            if (yx.length < 2) return null;
-            geometry.yx(yx[0], yx[1]);
-        }
-        return this;
-    }
-
-    public TLineStringBuilder of(TPoint... points)
-    {
-        geometry().of(points);
-        return this;
-    }
-
-    public TLineStringBuilder of()
-    {
-        geometry().of();
-        return this;
-    }
-
-
-    public TLineString geometry()
-    {
-        return geometry;
-    }
-
-    public TLineString geometry(int srid)
-    {
-        return geometry();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLinearRingBuilder.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLinearRingBuilder.java
 
b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLinearRingBuilder.java
deleted file mode 100644
index b057cbb..0000000
--- 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLinearRingBuilder.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.qi4j.api.geometry.internal.builders;
-
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.structure.Module;
-
-
-public class TLinearRingBuilder
-{
-
-    private Module module;
-    private TLinearRing geometry;
-
-
-    public TLinearRingBuilder(Module module)
-    {
-        this.module = module;
-        geometry = module.newValueBuilder(TLinearRing.class).prototype();
-    }
-
-
-    public TLinearRingBuilder ring(double[][] ring)
-    {
-        for (double xy[] : ring)
-        {
-            if (xy.length < 2) return null;
-            geometry.yx(xy[0], xy[1]);
-        }
-        return this;
-    }
-
-    public TLinearRingBuilder of(TPoint... points)
-    {
-        geometry().of(points);
-        return this;
-    }
-
-    public TLinearRing geometry()
-    {
-
-        return geometry;
-    }
-
-    public TLinearRing geometry(int srid)
-    {
-        return geometry();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiLineStringBuilder.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiLineStringBuilder.java
 
b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiLineStringBuilder.java
deleted file mode 100644
index c852d3a..0000000
--- 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiLineStringBuilder.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.qi4j.api.geometry.internal.builders;
-
-import org.qi4j.api.geometry.TLineString;
-import org.qi4j.api.geometry.TMultiLineString;
-import org.qi4j.api.structure.Module;
-
-import java.util.List;
-
-public class TMultiLineStringBuilder
-{
-
-    private Module module;
-    private TMultiLineString geometry;
-
-
-    public TMultiLineStringBuilder(Module module)
-    {
-        this.module = module;
-        geometry = module.newValueBuilder(TMultiLineString.class).prototype();
-    }
-
-
-    public TMultiLineStringBuilder points(double[][][] points)
-    {
-        for (double xy[][] : points)
-        {
-            if (xy.length < 2) return null;
-        }
-        return this;
-    }
-
-    public TMultiLineStringBuilder of(List<TLineString> lines)
-    {
-        geometry.of(lines);
-        return this;
-    }
-
-    public TMultiLineStringBuilder of(TLineString... lines)
-    {
-        geometry.of(lines);
-        return this;
-    }
-
-
-    public TMultiLineString geometry()
-    {
-        return geometry;
-    }
-
-    public TMultiLineString geometry(int srid)
-    {
-        return geometry();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPointBuilder.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPointBuilder.java
 
b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPointBuilder.java
deleted file mode 100644
index 0fe8ad1..0000000
--- 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPointBuilder.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.qi4j.api.geometry.internal.builders;
-
-import org.qi4j.api.geometry.TMultiPoint;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.structure.Module;
-
-/**
- * Created by jj on 26.11.14.
- */
-public class TMultiPointBuilder
-{
-
-    private Module module;
-    private TMultiPoint geometry;
-
-
-    public TMultiPointBuilder(Module module)
-    {
-        this.module = module;
-        geometry = module.newValueBuilder(TMultiPoint.class).prototype();
-    }
-
-    // Format { lat, lon }
-    public TMultiPointBuilder points(double[][] points)
-    {
-        for (double yx[] : points)
-        {
-            if (yx.length < 2) return null;
-            geometry.yx(yx[0], yx[1]);
-        }
-        return this;
-    }
-
-    public TMultiPointBuilder of(TPoint... points)
-    {
-        geometry().of(points);
-        return this;
-    }
-
-    public TMultiPoint geometry()
-    {
-        return geometry;
-    }
-
-    public TMultiPoint geometry(String CRS)
-    {
-        geometry().setCRS(CRS);
-        return geometry();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPolygonsBuilder.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPolygonsBuilder.java
 
b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPolygonsBuilder.java
deleted file mode 100644
index c57bb16..0000000
--- 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPolygonsBuilder.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.qi4j.api.geometry.internal.builders;
-
-import org.qi4j.api.geometry.TMultiPolygon;
-import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.structure.Module;
-
-import java.util.List;
-
-
-public class TMultiPolygonsBuilder
-{
-
-    private Module module;
-    private TMultiPolygon geometry;
-
-
-    public TMultiPolygonsBuilder(Module module)
-    {
-        this.module = module;
-        geometry = module.newValueBuilder(TMultiPolygon.class).prototype();
-    }
-
-
-    public TMultiPolygonsBuilder points(double[][][] points)
-    {
-        for (double xy[][] : points)
-        {
-            if (xy.length < 2) return null;
-        }
-        return this;
-    }
-
-    public TMultiPolygonsBuilder of(List<TPolygon> polygons)
-    {
-        geometry.of(polygons);
-        return this;
-    }
-
-    public TMultiPolygonsBuilder of(TPolygon... polygons)
-    {
-        geometry.of(polygons);
-        return this;
-    }
-
-
-    public TMultiPolygon geometry()
-    {
-        return geometry;
-    }
-
-    public TMultiPolygon geometry(int srid)
-    {
-        return geometry();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPointBuilder.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPointBuilder.java
 
b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPointBuilder.java
deleted file mode 100644
index d632459..0000000
--- 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPointBuilder.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.qi4j.api.geometry.internal.builders;
-
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-
-
-public class TPointBuilder
-{
-
-    private Module module;
-    private TPoint geometry;
-
-
-    public TPointBuilder(Module module)
-    {
-        this.module = module;
-        geometry = module.newValueBuilder(TPoint.class).prototype();
-    }
-
-    public TPointBuilder x(double x)
-    {
-        geometry.x(x);
-        return this;
-    }
-
-    public TPointBuilder y(double y)
-    {
-        geometry.y(y);
-        return this;
-    }
-
-    public TPointBuilder z(double u)
-    {
-        geometry.z(u);
-        return this;
-    }
-
-
-    public TPointBuilder lat(double lat)
-    {
-        geometry.y(lat);
-        return this;
-    }
-
-    public TPointBuilder lon(double lon)
-    {
-        geometry.x(lon);
-        return this;
-    }
-
-    public TPointBuilder alt(double alt)
-    {
-        geometry.z(alt);
-        return this;
-    }
-
-
-    public boolean isPoint(TGeometry tGeometry)
-    {
-        return tGeometry instanceof TPoint ? true : false;
-    }
-
-    public TPoint geometry()
-    {
-        return geometry;
-    }
-
-    public TPoint geometry(String CRS)
-    {
-        geometry().setCRS(CRS);
-        return geometry();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPolygonBuilder.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPolygonBuilder.java
 
b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPolygonBuilder.java
deleted file mode 100644
index d3f6b72..0000000
--- 
a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPolygonBuilder.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.qi4j.api.geometry.internal.builders;
-
-import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.structure.Module;
-
-
-public class TPolygonBuilder
-{
-
-    private Module module;
-    private TPolygon geometry;
-
-
-    public TPolygonBuilder(Module module)
-    {
-        this.module = module;
-        geometry = module.newValueBuilder(TPolygon.class).prototype();
-    }
-
-    public TPolygonBuilder shell(TLinearRing shell)
-    {
-        geometry.of(shell);
-        return this;
-    }
-
-    public TPolygonBuilder shell(double[][] shell)
-    {
-        geometry.of(new TLinearRingBuilder(module).ring(shell).geometry());
-        return this;
-    }
-
-    public TPolygonBuilder withHoles(TLinearRing... holes)
-    {
-        geometry.withHoles(holes);
-        return this;
-    }
-
-
-    public TPolygon geometry()
-    {
-        return geometry;
-    }
-
-    public TPolygon geometry(String CRS)
-    {
-        geometry().setCRS(CRS);
-        return geometry();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java
 
b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java
index e1bdb34..48b673f 100644
--- 
a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java
+++ 
b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java
@@ -2,8 +2,8 @@ package org.qi4j.api.query.grammar.extensions.spatial;
 
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TUnit;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TShape;
+import org.qi4j.api.geometry.TGeometry;
+import org.qi4j.api.geometry.TShape;
 import org.qi4j.api.property.Property;
 import org.qi4j.api.query.QueryExpressions;
 import 
org.qi4j.api.query.grammar.extensions.spatial.convert.ST_GeomFromTextSpecification;
@@ -13,74 +13,100 @@ import 
org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_IntersectsSpec
 import 
org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_WithinSpecification;
 import org.qi4j.functional.Specification;
 
-
 public final class SpatialQueryExpressions extends QueryExpressions
 {
 
     // ST_Within
-    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> 
ST_Within(Property<T> geometry, TPoint param, double distance, TUnit unit)
+    public static <T extends TGeometry> ST_WithinSpecification<T> ST_Within( 
Property<T> geometry,
+                                                                             
TPoint param,
+                                                                             
double distance,
+                                                                             
TUnit unit
+    )
     {
-        return new ST_WithinSpecification(property(geometry), param, distance, 
unit);
+        return new ST_WithinSpecification<>( property( geometry ), param, 
distance, unit );
     }
 
-    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> 
ST_Within(Property<T> geometry, TShape param)
+    public static <T extends TGeometry> ST_WithinSpecification<T> ST_Within( 
Property<T> geometry,
+                                                                             
TShape param
+    )
     {
-        return new ST_WithinSpecification(property(geometry), param);
+        return new ST_WithinSpecification<>( property( geometry ), param );
     }
 
-    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> 
ST_Within(Property<T> geometry, Specification<SpatialConvertSpecification> 
operator, double distance, TUnit unit)
+    public static <T extends TGeometry> ST_WithinSpecification<T> ST_Within( 
Property<T> geometry,
+                                                                             
Specification<SpatialConvertSpecification> operator,
+                                                                             
double distance,
+                                                                             
TUnit unit
+    )
     {
-        return new ST_WithinSpecification(property(geometry), operator, 
distance, unit);
+        return new ST_WithinSpecification<>( property( geometry ), operator, 
distance, unit );
     }
 
-    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> 
ST_Within(Property<T> geometry, Specification<SpatialConvertSpecification> 
operator)
+    public static <T extends TGeometry> ST_WithinSpecification<T> ST_Within( 
Property<T> geometry,
+                                                                             
Specification<SpatialConvertSpecification> operator
+    )
     {
-        return new ST_WithinSpecification(property(geometry), operator);
+        return new ST_WithinSpecification<>( property( geometry ), operator );
     }
 
     // ST_Disjoint
-    public static <T extends TGeometry> ST_DisjointSpecification<TGeometry> 
ST_Disjoint(Property<T> geometry, Specification<SpatialConvertSpecification> 
operator, long distance)
+    public static <T extends TGeometry> ST_DisjointSpecification<T> 
ST_Disjoint( Property<T> geometry,
+                                                                               
  Specification<SpatialConvertSpecification> operator,
+                                                                               
  long distance
+    )
     {
-        return new ST_DisjointSpecification(property(geometry), operator, 
distance);
+        return new ST_DisjointSpecification<>( property( geometry ), operator, 
distance );
     }
 
-    public static <T extends TGeometry> ST_DisjointSpecification<TGeometry> 
ST_Disjoint(Property<T> geometry, TPoint param, double distance, TUnit unit)
+    public static <T extends TGeometry> ST_DisjointSpecification<T> 
ST_Disjoint( Property<T> geometry,
+                                                                               
  TPoint param,
+                                                                               
  double distance,
+                                                                               
  TUnit unit
+    )
     {
-        return new ST_DisjointSpecification(property(geometry), param, 
distance, unit);
+        return new ST_DisjointSpecification<>( property( geometry ), param, 
distance, unit );
     }
 
-    public static <T extends TGeometry> ST_DisjointSpecification<TGeometry> 
ST_Disjoint(Property<T> geometry, TShape param)
+    public static <T extends TGeometry> ST_DisjointSpecification<T> 
ST_Disjoint( Property<T> geometry,
+                                                                               
  TShape param
+    )
     {
-        return new ST_DisjointSpecification(property(geometry), param);
+        return new ST_DisjointSpecification<>( property( geometry ), param );
     }
 
-
     // ST_Intersects
-    public static <T extends TGeometry> ST_IntersectsSpecification<TGeometry> 
ST_Intersects(Property<T> geometry, Specification<SpatialConvertSpecification> 
operator, long distance)
+    public static <T extends TGeometry> ST_IntersectsSpecification<T> 
ST_Intersects( Property<T> geometry,
+                                                                               
      Specification<SpatialConvertSpecification> operator,
+                                                                               
      long distance
+    )
     {
-        return new ST_IntersectsSpecification(property(geometry), operator, 
distance);
+        return new ST_IntersectsSpecification<>( property( geometry ), 
operator, distance );
     }
 
-    public static <T extends TGeometry> ST_IntersectsSpecification<TGeometry> 
ST_Intersects(Property<T> geometry, TPoint value, double distance, TUnit unit)
+    public static <T extends TGeometry> ST_IntersectsSpecification<T> 
ST_Intersects( Property<T> geometry,
+                                                                               
      TPoint value,
+                                                                               
      double distance,
+                                                                               
      TUnit unit
+    )
     {
-        return new ST_IntersectsSpecification(property(geometry), value, 
distance, unit);
+        return new ST_IntersectsSpecification<>( property( geometry ), value, 
distance, unit );
     }
 
-    public static <T extends TGeometry> ST_IntersectsSpecification<TGeometry> 
ST_Intersects(Property<T> geometry, TShape param)
+    public static <T extends TGeometry> ST_IntersectsSpecification<T> 
ST_Intersects( Property<T> geometry,
+                                                                               
      TShape param
+    )
     {
-        return new ST_IntersectsSpecification(property(geometry), param);
+        return new ST_IntersectsSpecification<>( property( geometry ), param );
     }
 
-
     // ST_GeometryFromText
-    public static Specification<SpatialConvertSpecification> 
ST_GeometryFromText(String WKT)
+    public static Specification<SpatialConvertSpecification> 
ST_GeometryFromText( String WKT )
     {
-        return ST_GeometryFromText(WKT, null);
+        return ST_GeometryFromText( WKT, null );
     }
 
-    public static Specification<SpatialConvertSpecification> 
ST_GeometryFromText(String WKT, String crs)
+    public static Specification<SpatialConvertSpecification> 
ST_GeometryFromText( String WKT, String crs )
     {
-        return new ST_GeomFromTextSpecification(WKT, crs);
+        return new ST_GeomFromTextSpecification( WKT, crs );
     }
-
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/ST_GeomFromTextSpecification.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/ST_GeomFromTextSpecification.java
 
b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/ST_GeomFromTextSpecification.java
index b7e76a5..eca8444 100644
--- 
a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/ST_GeomFromTextSpecification.java
+++ 
b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/ST_GeomFromTextSpecification.java
@@ -1,19 +1,18 @@
 package org.qi4j.api.query.grammar.extensions.spatial.convert;
 
-import org.qi4j.api.geometry.internal.TGeometry;
-
+import org.qi4j.api.geometry.TGeometry;
 
 public class ST_GeomFromTextSpecification<T extends TGeometry>
-        extends SpatialConvertSpecification<T>
+    extends SpatialConvertSpecification
 {
-    public ST_GeomFromTextSpecification(String WKT, String crs)
+    public ST_GeomFromTextSpecification( String WKT, String crs )
     {
-        super(WKT, crs);
+        super( WKT, crs );
     }
 
     @Override
     public String toString()
     {
-        return "CONVERTING ( " +  geometryAsWKT + " )";
+        return "CONVERTING ( " + geometryAsWKT + " )";
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/SpatialConvertSpecification.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/SpatialConvertSpecification.java
 
b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/SpatialConvertSpecification.java
index 7e4f13b..aa2e6d9 100644
--- 
a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/SpatialConvertSpecification.java
+++ 
b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/SpatialConvertSpecification.java
@@ -1,25 +1,22 @@
 package org.qi4j.api.query.grammar.extensions.spatial.convert;
 
 import org.qi4j.api.composite.Composite;
-import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.TGeometry;
 import org.qi4j.api.query.grammar.ExpressionSpecification;
 
-
-public abstract class SpatialConvertSpecification<T>
-        extends ExpressionSpecification
+public abstract class SpatialConvertSpecification
+    extends ExpressionSpecification
 {
     protected String geometryAsWKT;
     protected TGeometry geometry;
     protected String crs;
 
-
-    public SpatialConvertSpecification(String wkt, String crs)
+    public SpatialConvertSpecification( String wkt, String crs )
     {
         this.geometryAsWKT = wkt;
         this.crs = crs;
     }
 
-
     public String property()
     {
         return geometryAsWKT;
@@ -30,15 +27,14 @@ public abstract class SpatialConvertSpecification<T>
         return this.geometry;
     }
 
-    public void setGeometry(TGeometry geometry)
+    public void setGeometry( TGeometry geometry )
     {
         this.geometry = geometry;
     }
 
     @Override
-    public final boolean satisfiedBy(Composite item)
+    public final boolean satisfiedBy( Composite item )
     {
         return true;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
 
b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
index 703e955..29549d8 100644
--- 
a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
+++ 
b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
@@ -2,37 +2,39 @@ package 
org.qi4j.api.query.grammar.extensions.spatial.predicate;
 
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TUnit;
-import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.TGeometry;
 import org.qi4j.api.query.grammar.PropertyFunction;
 import 
org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;
 import org.qi4j.functional.Specification;
 
-
 public class ST_DisjointSpecification<T extends TGeometry>
-        extends SpatialPredicatesSpecification<T>
+    extends SpatialPredicatesSpecification<T>
 {
 
     private double distance;
     private TUnit unit;
 
-    public ST_DisjointSpecification(PropertyFunction<T> property, TGeometry 
param)
+    public ST_DisjointSpecification( PropertyFunction<T> property, TGeometry 
param )
     {
-        super(property, param);
+        super( property, param );
     }
 
-    public ST_DisjointSpecification(PropertyFunction<T> property, 
Specification<SpatialConvertSpecification> operator, long distance)
+    // TODO: [niclas] 'distance' is not used...??? Missing tests?
+    public ST_DisjointSpecification( PropertyFunction<T> property,
+                                     
Specification<SpatialConvertSpecification> operator,
+                                     long distance
+    )
     {
-        super(property, operator);
+        super( property, operator );
     }
 
-    public ST_DisjointSpecification(PropertyFunction<T> property, TPoint 
value, double distance, TUnit unit)
+    public ST_DisjointSpecification( PropertyFunction<T> property, TPoint 
value, double distance, TUnit unit )
     {
-        super(property, value);
+        super( property, value );
         this.distance = distance;
         this.unit = unit;
     }
 
-
     public double getDistance()
     {
         return distance;
@@ -43,26 +45,31 @@ public class ST_DisjointSpecification<T extends TGeometry>
         return unit;
     }
 
-
     @Override
-    protected boolean compare(TGeometry param)
+    protected boolean compare( TGeometry param )
     {
-        return param.equals(this.param);
+        return param.equals( this.param );
     }
 
     @Override
     public String toString()
     {
-        StringBuffer spec = new StringBuffer();
-        spec.append("ST_DISJOINT").append("( 
").append(property.toString()).append(" IS NOT WITHIN ");
-        spec.append(param.toString());
+        StringBuilder spec = new StringBuilder();
+        spec.append( "ST_DISJOINT" );
+        spec.append( "( " );
+        spec.append( property.toString() );
+        spec.append( " IS NOT WITHIN " );
+        spec.append( param.toString() );
 
-        if (distance > 0)
+        if( distance > 0 )
         {
-            spec.append(" WITH RADIUS ").append(distance).append(" 
").append(unit);
+            spec.append( " WITH RADIUS " );
+            spec.append( distance );
+            spec.append( " " );
+            spec.append( unit );
         }
 
-        spec.append(" ) ");
+        spec.append( " ) " );
         return spec.toString();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
 
b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
index 6fda01f..93705fa 100644
--- 
a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
+++ 
b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
@@ -2,37 +2,37 @@ package 
org.qi4j.api.query.grammar.extensions.spatial.predicate;
 
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TUnit;
-import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.TGeometry;
 import org.qi4j.api.query.grammar.PropertyFunction;
 import 
org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;
 import org.qi4j.functional.Specification;
 
-
 public class ST_IntersectsSpecification<T extends TGeometry>
-        extends SpatialPredicatesSpecification<T>
+    extends SpatialPredicatesSpecification<T>
 {
-
     private double distance;
     private TUnit unit;
 
-    public ST_IntersectsSpecification(PropertyFunction<T> property, TGeometry 
param)
+    public ST_IntersectsSpecification( PropertyFunction<T> property, TGeometry 
param )
     {
-        super(property, param);
+        super( property, param );
     }
 
-    public ST_IntersectsSpecification(PropertyFunction<T> property, 
Specification<SpatialConvertSpecification> operator, long distance)
+    public ST_IntersectsSpecification( PropertyFunction<T> property,
+                                       
Specification<SpatialConvertSpecification> operator,
+                                       long distance
+    )
     {
-        super(property, operator);
+        super( property, operator );
     }
 
-    public ST_IntersectsSpecification(PropertyFunction<T> property, TPoint 
param, double distance, TUnit unit)
+    public ST_IntersectsSpecification( PropertyFunction<T> property, TPoint 
param, double distance, TUnit unit )
     {
-        super(property, param);
+        super( property, param );
         this.distance = distance;
         this.unit = unit;
     }
 
-
     public double getDistance()
     {
         return distance;
@@ -43,26 +43,31 @@ public class ST_IntersectsSpecification<T extends TGeometry>
         return unit;
     }
 
-
     @Override
-    protected boolean compare(TGeometry param)
+    protected boolean compare( TGeometry param )
     {
-        return param.equals(this.param);
+        return param.equals( this.param );
     }
 
     @Override
     public String toString()
     {
-        StringBuffer spec = new StringBuffer();
-        spec.append("ST_INTERSECTS").append("( 
").append(property.toString()).append(" INTERSECTS ");
-        spec.append(param.toString());
+        StringBuilder spec = new StringBuilder();
+        spec.append( "ST_INTERSECTS" );
+        spec.append( "( " );
+        spec.append( property.toString() );
+        spec.append( " INTERSECTS " );
+        spec.append( param.toString() );
 
-        if (distance > 0)
+        if( distance > 0 )
         {
-            spec.append(" WITH RADIUS ").append(distance).append(" 
").append(unit);
+            spec.append( " WITH RADIUS " );
+            spec.append( distance );
+            spec.append( " " );
+            spec.append( unit );
         }
 
-        spec.append(" ) ");
+        spec.append( " ) " );
         return spec.toString();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java
 
b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java
index 4483fa6..85522f8 100644
--- 
a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java
+++ 
b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java
@@ -2,42 +2,44 @@ package 
org.qi4j.api.query.grammar.extensions.spatial.predicate;
 
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TUnit;
-import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.TGeometry;
 import org.qi4j.api.query.grammar.PropertyFunction;
 import 
org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;
 import org.qi4j.functional.Specification;
 
-
 public class ST_WithinSpecification<T extends TGeometry>
-        extends SpatialPredicatesSpecification<T>
+    extends SpatialPredicatesSpecification<T>
 {
 
     private double distance;
     private TUnit unit;
 
-    public ST_WithinSpecification(PropertyFunction<T> property, TGeometry 
param)
+    public ST_WithinSpecification( PropertyFunction<T> property, TGeometry 
param )
     {
-        super(property, param);
+        super( property, param );
     }
 
-    public ST_WithinSpecification(PropertyFunction<T> property, TPoint param, 
double distance, TUnit unit)
+    public ST_WithinSpecification( PropertyFunction<T> property, TPoint param, 
double distance, TUnit unit )
     {
-        super(property, param);
+        super( property, param );
         this.distance = distance;
         this.unit = unit;
     }
 
-    public ST_WithinSpecification(PropertyFunction<T> property, 
Specification<SpatialConvertSpecification> operator, double distance, TUnit 
unit)
+    public ST_WithinSpecification( PropertyFunction<T> property,
+                                   Specification<SpatialConvertSpecification> 
operator,
+                                   double distance,
+                                   TUnit unit
+    )
     {
-        super(property, operator);
+        super( property, operator );
         this.distance = distance;
         this.unit = unit;
     }
 
-
-    public ST_WithinSpecification(PropertyFunction<T> property, 
Specification<SpatialConvertSpecification> operator)
+    public ST_WithinSpecification( PropertyFunction<T> property, 
Specification<SpatialConvertSpecification> operator )
     {
-        super(property, operator);
+        super( property, operator );
     }
 
     public double getDistance()
@@ -50,26 +52,31 @@ public class ST_WithinSpecification<T extends TGeometry>
         return unit;
     }
 
-
     @Override
-    protected boolean compare(TGeometry param)
+    protected boolean compare( TGeometry param )
     {
-        return param.equals(this.param);
+        return param.equals( this.param );
     }
 
     @Override
     public String toString()
     {
-        StringBuffer spec = new StringBuffer();
-        spec.append("ST_WITHIN").append("( 
").append(property.toString()).append(" IS WITHIN ");
-        spec.append(param.toString());
-
-        if (distance > 0)
+        StringBuilder spec = new StringBuilder();
+        spec.append( "ST_WITHIN" );
+        spec.append( "( " );
+        spec.append( property.toString() );
+        spec.append( " IS WITHIN " );
+        spec.append( param.toString() );
+
+        if( distance > 0 )
         {
-            spec.append(" WITH RADIUS ").append(distance).append(" 
").append(unit);
+            spec.append( " WITH RADIUS " );
+            spec.append( distance );
+            spec.append( " " );
+            spec.append( unit );
         }
 
-        spec.append(" ) ");
+        spec.append( " ) " );
         return spec.toString();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
 
b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
index bd793fb..5bde3e2 100644
--- 
a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
+++ 
b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
@@ -1,29 +1,30 @@
 package org.qi4j.api.query.grammar.extensions.spatial.predicate;
 
 import org.qi4j.api.composite.Composite;
-import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.TGeometry;
 import org.qi4j.api.property.Property;
 import org.qi4j.api.query.grammar.ExpressionSpecification;
 import org.qi4j.api.query.grammar.PropertyFunction;
 import 
org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;
 import org.qi4j.functional.Specification;
 
-
 public abstract class SpatialPredicatesSpecification<T extends TGeometry>
-        extends ExpressionSpecification
+    extends ExpressionSpecification
 {
     protected final PropertyFunction<T> property;
     protected final TGeometry param;
     protected final Specification<SpatialConvertSpecification> operator;
 
-    public SpatialPredicatesSpecification(PropertyFunction<T> property, 
TGeometry param)
+    public SpatialPredicatesSpecification( PropertyFunction<T> property, 
TGeometry param )
     {
         this.property = property;
         this.param = param;
         this.operator = null;
     }
 
-    public SpatialPredicatesSpecification(PropertyFunction<T> property, 
Specification<SpatialConvertSpecification> operator)
+    public SpatialPredicatesSpecification( PropertyFunction<T> property,
+                                           
Specification<SpatialConvertSpecification> operator
+    )
     {
         this.property = property;
         this.operator = operator;
@@ -36,31 +37,32 @@ public abstract class SpatialPredicatesSpecification<T 
extends TGeometry>
     }
 
     @Override
-    public final boolean satisfiedBy(Composite item)
+    public final boolean satisfiedBy( Composite item )
     {
         try
         {
-            Property<T> prop = property.map(item);
+            Property<T> prop = property.map( item );
 
-            if (prop == null)
+            if( prop == null )
             {
                 return false;
             }
 
             TGeometry propValue = prop.get();
-            if (propValue == null)
+            if( propValue == null )
             {
                 return false;
             }
 
-            return compare(propValue);
-        } catch (IllegalArgumentException e)
+            return compare( propValue );
+        }
+        catch( IllegalArgumentException e )
         {
             return false;
         }
     }
 
-    protected abstract boolean compare(TGeometry value);
+    protected abstract boolean compare( TGeometry value );
 
     public TGeometry param()
     {

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/main/java/org/qi4j/api/type/ValueType.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/type/ValueType.java 
b/core/api/src/main/java/org/qi4j/api/type/ValueType.java
index 8c74442..98c5d01 100644
--- a/core/api/src/main/java/org/qi4j/api/type/ValueType.java
+++ b/core/api/src/main/java/org/qi4j/api/type/ValueType.java
@@ -16,7 +16,7 @@ package org.qi4j.api.type;
 
 import java.util.Collections;
 
-import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.TGeometry;
 import org.qi4j.api.util.NullArgumentException;
 import org.qi4j.functional.Function;
 import org.qi4j.functional.Iterables;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java
----------------------------------------------------------------------
diff --git 
a/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java 
b/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java
index 1871807..4dc3b76 100644
--- a/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java
+++ b/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java
@@ -15,9 +15,6 @@
 package org.qi4j.api.geometry;
 
 import org.junit.Test;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.test.AbstractQi4jTest;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java
----------------------------------------------------------------------
diff --git a/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java 
b/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java
index 99f0493..f4a56b0 100644
--- a/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java
+++ b/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java
@@ -15,10 +15,6 @@
 package org.qi4j.api.geometry;
 
 import org.junit.Test;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TCircle;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
 import org.qi4j.api.value.ValueBuilder;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
----------------------------------------------------------------------
diff --git 
a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
 
b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
index 1c5ba2e..1e5f226 100644
--- 
a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
+++ 
b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
@@ -18,9 +18,9 @@
 package org.qi4j.test.indexing;
 
 import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
+import org.qi4j.api.geometry.Coordinate;
+import org.qi4j.api.geometry.TGeometry;
+import org.qi4j.api.geometry.TLinearRing;
 import org.qi4j.api.unitofwork.UnitOfWork;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractQueryTest.java
----------------------------------------------------------------------
diff --git 
a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractQueryTest.java 
b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractQueryTest.java
index 40ceb08..9f39e8a 100644
--- 
a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractQueryTest.java
+++ 
b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractQueryTest.java
@@ -148,11 +148,8 @@ public abstract class AbstractQueryTest
     {
         QueryBuilder<Person> qb = this.module.newQueryBuilder( Person.class );
         Person person = templateFor( Person.class );
-        Query<Person> query = unitOfWork.newQuery( qb.where( eq( 
person.mother()
-            .get()
-            .placeOfBirth()
-            .get()
-            .name(), "Kuala Lumpur" ) )
+        Query<Person> query = unitOfWork.newQuery(
+            qb.where( eq( person.mother().get().placeOfBirth().get().name(), 
"Kuala Lumpur" ) )
         );
         System.out.println( "*** script05: " + query );
         verifyUnorderedResults( query, "Joe Doe" );

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialQueryTest.java
----------------------------------------------------------------------
diff --git 
a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialQueryTest.java
 
b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialQueryTest.java
index 7bcc39d..50e0fea 100644
--- 
a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialQueryTest.java
+++ 
b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialQueryTest.java
@@ -1,13 +1,21 @@
 package org.qi4j.test.indexing;
 
-import org.junit.Test;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 import org.qi4j.api.common.Optional;
 import org.qi4j.api.entity.EntityComposite;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.injection.scope.Service;
+import org.qi4j.api.geometry.TFeature;
+import org.qi4j.api.geometry.TFeatureCollection;
+import org.qi4j.api.geometry.TLineString;
+import org.qi4j.api.geometry.TMultiPoint;
+import org.qi4j.api.geometry.TMultiPolygon;
+import org.qi4j.api.geometry.TPoint;
+import org.qi4j.api.geometry.TPolygon;
+import org.qi4j.api.geometry.TUnit;
+import org.qi4j.api.geometry.Coordinate;
+import org.qi4j.api.geometry.TGeometry;
+import org.qi4j.api.geometry.TLinearRing;
 import org.qi4j.api.property.Property;
 import org.qi4j.api.query.Query;
 import org.qi4j.api.query.QueryBuilder;
@@ -16,10 +24,6 @@ import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.test.indexing.model.City;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
 import static org.qi4j.api.query.QueryExpressions.eq;
 import static org.qi4j.api.query.QueryExpressions.templateFor;
 import static 
org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_GeometryFromText;
@@ -29,7 +33,7 @@ import static 
org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressi
  * Created by jakes on 2/8/14.
  */
 public class AbstractSpatialQueryTest
-                extends AbstractAnyQueryTest
+    extends AbstractAnyQueryTest
 {
 
     private final String CRS_EPSG_4326 = "EPSG:4326";
@@ -38,71 +42,59 @@ public class AbstractSpatialQueryTest
 
     {
 
-
         @Optional
         Property<Map<String, Object>> properties();
 
         // @Optional
         Property<TGeometry> geometry1();
-
     }
 
-
     public interface MapFeatureEntity
-            extends MapFeature, EntityComposite
+        extends MapFeature, EntityComposite
     {
     }
 
-
     @Override
     public void assemble( ModuleAssembly module )
-            throws AssemblyException
+        throws AssemblyException
     {
         super.assemble( module );
-        module.entities(MapFeatureEntity.class);
+        module.entities( MapFeatureEntity.class );
 
         // internal values
-        module.values(Coordinate.class, TLinearRing.class, TGeometry.class);
+        module.values( Coordinate.class, TLinearRing.class, TGeometry.class );
 
         // API values
-        module.values(TPoint.class, TMultiPoint.class, TLineString.class, 
TPolygon.class, TMultiPolygon.class, TFeature.class, TFeatureCollection.class);
-        TGeometry tGeometry = 
module.forMixin(TGeometry.class).declareDefaults();
-        tGeometry.CRS().set(CRS_EPSG_4326);
-
+        module.values( TPoint.class, TMultiPoint.class, TLineString.class, 
TPolygon.class, TMultiPolygon.class, TFeature.class, TFeatureCollection.class );
+        TGeometry tGeometry = module.forMixin( TGeometry.class 
).declareDefaults();
+        tGeometry.CRS().set( CRS_EPSG_4326 );
     }
 
-
-
     // @Test
-    public void whenQueryUseConversion() throws Exception
+    public void whenQueryUseConversion()
+        throws Exception
     {
         // lat, long
-        ST_GeometryFromText("POINT(49.550881 10.712809)");
-
+        ST_GeometryFromText( "POINT(49.550881 10.712809)" );
 
+        QueryBuilder<City> qb = this.module.newQueryBuilder( City.class );
 
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-
+        Property<TPoint> cityLocation = templateFor( City.class ).location();
         Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                
templateFor(City.class).location(),
-                                                
ST_GeometryFromText("POINT(49.550881 10.712809)"),
-                                                100,
-                                                TUnit.METER
-                                        )
-                        ));
-
+            qb.where(
+                ST_Within(
+                    cityLocation,
+                    ST_GeometryFromText( "POINT(49.550881 10.712809)" ),
+                    100,
+                    TUnit.METER
+                )
+            )
+        );
 
         // System.out.println( "*** script01: " + query );
         query.find();
 
-
-
-        System.out.println("Found Cities " + query.count());
-
+        System.out.println( "Found Cities " + query.count() );
 
 //        QueryBuilder<Person> qb = this.module.newQueryBuilder( Person.class 
);
 //        Person personTemplate = templateFor( Person.class );
@@ -112,8 +104,6 @@ public class AbstractSpatialQueryTest
 //       //  verifyUnorderedResults( query, "Joe Doe", "Ann Doe" );
     }
 
-
-
     // @Test
     public void script11()
     {
@@ -123,53 +113,44 @@ public class AbstractSpatialQueryTest
 //
 //        verifyUnorderedResults( query, "Joe Doe" );
 
-
         QueryBuilder<City> qb = this.module.newQueryBuilder( City.class );
         City cityTemplate = templateFor( City.class );
         //  Query<City> query = unitOfWork.newQuery( qb.where( eq( 
cityTemplate.location(), "Kuala Lumpur" ) ) );
 
-        ValueBuilder<TPolygon> builder = 
module.newValueBuilder(TPolygon.class);
+        ValueBuilder<TPolygon> builder = module.newValueBuilder( 
TPolygon.class );
         TPolygon proto = builder.prototype();
 
         List<List<List<Double>>> coordinates = new 
ArrayList<List<List<Double>>>();
 
         List<List<Double>> a = new ArrayList<List<Double>>();
-        a.add(new ArrayList<Double>());
-        a.add(new ArrayList<Double>());
-        a.add(new ArrayList<Double>());
-        coordinates.add(a);
+        a.add( new ArrayList<Double>() );
+        a.add( new ArrayList<Double>() );
+        a.add( new ArrayList<Double>() );
+        coordinates.add( a );
 
         List<List<Double>> b = new ArrayList<List<Double>>();
-        b.add(new ArrayList<Double>());
-        b.add(new ArrayList<Double>());
-        a.add(new ArrayList<Double>());
-        coordinates.add(b);
+        b.add( new ArrayList<Double>() );
+        b.add( new ArrayList<Double>() );
+        a.add( new ArrayList<Double>() );
+        coordinates.add( b );
 
         // new ArrayList<List<Double>>().add(new ArrayList<Double>());
 
+        coordinates.get( 0 ).get( 0 ).add( 0.0 );
+        coordinates.get( 0 ).get( 1 ).add( 0.1 );
+        coordinates.get( 0 ).get( 2 ).add( 0.2 );
+        coordinates.get( 0 ).get( 3 ).add( 0.3 );
 
+        coordinates.get( 1 ).get( 1 ).add( 1.1 );
 
-        coordinates.get(0).get(0).add(0.0);
-        coordinates.get(0).get(1).add(0.1);
-        coordinates.get(0).get(2).add(0.2);
-        coordinates.get(0).get(3).add(0.3);
-
-        coordinates.get(1).get(1).add(1.1);
-
-
-       // proto.coordinates().set(coordinates);
-
+        // proto.coordinates().set(coordinates);
 
         //Double lat =  3.138722;  // 3.138722;// 
Double.parseDouble(query.nextToken());
         //Double lon =  101.386849; // Double.parseDouble(query.nextToken());
 
-
         // coordinates.add(3.138722);
         // coordinates.add(101.386849);
 
-
-
-
 //        proto.coordinates().set(coordinates);
 //
 //        Query<City> query = unitOfWork.newQuery(
@@ -183,7 +164,6 @@ public class AbstractSpatialQueryTest
 //
 //        System.out.println(query.count());
 
-
 //        QueryBuilder<Person> qb = this.module.newQueryBuilder( Person.class 
);
 //        Person personTemplate = templateFor( Person.class );
 //        City placeOfBirth = personTemplate.placeOfBirth().get();
@@ -201,7 +181,6 @@ public class AbstractSpatialQueryTest
 //
 //        verifyUnorderedResults( query, "Joe Doe" );
 
-
 //        QueryBuilder<City> qb = this.module.newQueryBuilder( City.class );
 //        City cityTemplate = templateFor( City.class );
 //        //  Query<City> query = unitOfWork.newQuery( qb.where( eq( 
cityTemplate.location(), "Kuala Lumpur" ) ) );
@@ -243,7 +222,6 @@ public class AbstractSpatialQueryTest
 ////       //  verifyUnorderedResults( query, "Joe Doe", "Ann Doe" );
     }
 
-
     // @Test
     public void script3()
     {
@@ -253,20 +231,17 @@ public class AbstractSpatialQueryTest
 //
 //        verifyUnorderedResults( query, "Joe Doe" );
 
-
         QueryBuilder<City> qb = this.module.newQueryBuilder( City.class );
         City cityTemplate = templateFor( City.class );
         Query<City> query = unitOfWork.newQuery( qb.where( eq( 
cityTemplate.name(), "Kuala Lumpur" ) ) );
 
-
         System.out.println( "*** script02: " + query );
         query.find();
 
-        System.out.println(query.count());
+        System.out.println( query.count() );
 
 //         System.out.println(query.find().locationABC());
 
-
 //        QueryBuilder<Person> qb = this.module.newQueryBuilder( Person.class 
);
 //        Person personTemplate = templateFor( Person.class );
 //        City placeOfBirth = personTemplate.placeOfBirth().get();
@@ -276,12 +251,13 @@ public class AbstractSpatialQueryTest
     }
 
     //@Test
-    public void script4() throws Exception
+    public void script4()
+        throws Exception
     {
 
-        System.out.println("Script4");
+        System.out.println( "Script4" );
 
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
+        QueryBuilder<City> qb = this.module.newQueryBuilder( City.class );
         // City cityTemplate = templateFor(City.class);
 
 //        Query<City> query = unitOfWork.newQuery(
@@ -293,7 +269,7 @@ public class AbstractSpatialQueryTest
 //
 //                        ));
 
- //       query.find();
+        //       query.find();
 
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
index 3b59443..12b0f83 100644
--- 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
+++ 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
@@ -21,43 +21,36 @@ import org.elasticsearch.action.count.CountRequestBuilder;
 import org.elasticsearch.action.count.CountResponse;
 import org.elasticsearch.action.search.SearchRequestBuilder;
 import org.elasticsearch.action.search.SearchResponse;
-import org.elasticsearch.common.geo.GeoDistance;
 import org.elasticsearch.index.query.AndFilterBuilder;
 import org.elasticsearch.index.query.FilterBuilder;
 import org.elasticsearch.index.query.OrFilterBuilder;
 import org.elasticsearch.index.query.QueryBuilder;
 import org.elasticsearch.search.SearchHit;
-import org.elasticsearch.search.sort.GeoDistanceSortBuilder;
 import org.elasticsearch.search.sort.SortOrder;
 import org.qi4j.api.composite.Composite;
 import org.qi4j.api.entity.EntityReference;
 import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
+import org.qi4j.api.geometry.TGeometry;
+import org.qi4j.api.geometry.TLinearRing;
 import org.qi4j.api.injection.scope.Structure;
 import org.qi4j.api.injection.scope.This;
 import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.property.GenericPropertyInfo;
 import org.qi4j.api.query.grammar.*;
 import 
org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;
 import 
org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;
 import org.qi4j.api.structure.Module;
-import org.qi4j.api.util.Classes;
 import org.qi4j.api.value.ValueComposite;
 import org.qi4j.functional.Function;
 import org.qi4j.functional.Iterables;
 import org.qi4j.functional.Specification;
 import org.qi4j.index.elasticsearch.ElasticSearchFinderSupport.*;
 import 
org.qi4j.index.elasticsearch.extensions.spatial.ElasticSearchSpatialFinder;
-import 
org.qi4j.index.elasticsearch.extensions.spatial.functions.convert.ConvertFinderSupport;
-import 
org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates.PredicateFinderSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.internal.InternalUtils;
 import org.qi4j.spi.query.EntityFinder;
 import org.qi4j.spi.query.EntityFinderException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.lang.reflect.Type;
 import java.util.HashMap;
 import java.util.Map;
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
index dee2e26..3981f1a 100644
--- 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
+++ 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
@@ -25,7 +25,7 @@ import org.json.JSONObject;
 import org.qi4j.api.association.AssociationDescriptor;
 import org.qi4j.api.entity.EntityDescriptor;
 import org.qi4j.api.entity.EntityReference;
-import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.TGeometry;
 import org.qi4j.api.injection.scope.Service;
 import org.qi4j.api.injection.scope.Structure;
 import org.qi4j.api.injection.scope.This;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
index c51f31d..2b79993 100644
--- 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
+++ 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
@@ -22,7 +22,7 @@ import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.TGeometry;
 import org.qi4j.api.structure.Module;
 import org.qi4j.index.elasticsearch.ElasticSearchIndexException;
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
index 90810f3..1d9f7cb 100644
--- 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
+++ 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
@@ -18,7 +18,7 @@ import com.google.common.collect.HashBasedTable;
 import com.google.common.collect.Table;
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.TGeometry;
 import 
org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_DisjointSpecification;
 import 
org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_IntersectsSpecification;
 import 
org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_WithinSpecification;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
index 5603bb5..5b3ab50 100644
--- 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
+++ 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
@@ -20,7 +20,7 @@ import org.elasticsearch.index.query.FilterBuilders;
 import org.elasticsearch.index.query.GeoPolygonFilterBuilder;
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.TGeometry;
 import 
org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_DisjointSpecification;
 import 
org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;
 import org.qi4j.api.structure.Module;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
index a13f1b4..a150ce8 100644
--- 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
+++ 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
@@ -20,7 +20,7 @@ import org.elasticsearch.index.query.FilterBuilders;
 import org.elasticsearch.index.query.GeoPolygonFilterBuilder;
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.TGeometry;
 import 
org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_DisjointSpecification;
 import 
org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_IntersectsSpecification;
 import 
org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java
 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java
index 1516038..903a0ac 100644
--- 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java
+++ 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java
@@ -20,7 +20,7 @@ import org.elasticsearch.index.query.FilterBuilders;
 import org.elasticsearch.index.query.GeoPolygonFilterBuilder;
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.TGeometry;
 import 
org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_WithinSpecification;
 import 
org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;
 import org.qi4j.api.structure.Module;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
index efcb425..16c61a9 100644
--- 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
+++ 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
@@ -25,8 +25,8 @@ import org.qi4j.api.composite.Composite;
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TPolygon;
 import org.qi4j.api.geometry.TUnit;
-import org.qi4j.api.geometry.internal.TCircle;
-import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.TCircle;
+import org.qi4j.api.geometry.TGeometry;
 import org.qi4j.api.property.GenericPropertyInfo;
 import org.qi4j.api.query.grammar.PropertyFunction;
 import 
org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c1d327e2/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java
 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java
index 8b2aa0e..42f2eda 100644
--- 
a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java
+++ 
b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java
@@ -15,7 +15,7 @@
 package org.qi4j.index.elasticsearch.extensions.spatial.internal;
 
 import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.TGeometry;
 import org.qi4j.api.property.GenericPropertyInfo;
 import org.qi4j.api.query.grammar.PropertyFunction;
 import org.qi4j.api.util.Classes;

Reply via email to