add a ton of tests and GeoJSON support