added validation and GeoJSON