implement geotools