class GridCreator implements Iterable<GridCell> {

    public List<GridCell> getCells(GridCell cell) {
        Validate.notNull(cell, "cell must not be null");
        List<GridCell> cells = new ArrayList<>();
        for (double lat = cell.lat1; lat < cell.lat2; lat += gridSize) {
            for (double lng = cell.lng1; lng < cell.lng2; lng += gridSize) {
                lat = GeoUtils.normalizeLatitude(lat);
                lng = GeoUtils.normalizeLongitude(lng);
                cells.add(getCell(new ImmutableGeoCoordinate(lat, lng)));
            }
        }
        return cells;
    }

    public  GridCreator(double gridSize);

}