diff --git a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSources.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSources.java
index 4df5c0c..fcb3432 100644
--- a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSources.java
+++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSources.java
@@ -56,7 +56,7 @@
     }
 
     /**
-     * Get the given metadata value for all data sources.
+     * Get the requested metadata value for all data sources.
      *
      * @param key key of the metadata part
      * @return list of metadata values
@@ -68,9 +68,9 @@
     }
 
     /**
-     * Get the unique groups of all data sources.
+     * Get a list of unique groups of all data sources.
      *
-     * @return data source names
+     * @return list of groups
      */
     public List<String> getGroups() {
         return dataSources.stream()
diff --git a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/HttpDataSourceLoader.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/HttpDataSourceLoader.java
index aa3d8ad..95a5700 100644
--- a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/HttpDataSourceLoader.java
+++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/HttpDataSourceLoader.java
@@ -44,7 +44,8 @@
         final NamedUri namedUri = NamedUriStringParser.parse(source);
         final URI uri = namedUri.getUri();
         final String group = namedUri.getGroupOrDefault(DEFAULT_GROUP);
-        final Charset charset = namedUri.getCharset();
+        // if no charset is defined here we delegate that to the underlying data source
+        final Charset charset = namedUri.getCharsetOrDefault(null);
         final String mimeType = namedUri.getMimeType();
         final URL url = toUrl(uri);
         final String name = namedUri.getNameOrDefault(UriUtils.toStringWithoutFragment(uri));
diff --git a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesTest.java
index 030ea62..85bdedc 100644
--- a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesTest.java
+++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesTest.java
@@ -101,6 +101,7 @@
     @Test
     public void shouldGetMetadataParts() {
         assertEquals(asList("", "pom.xml", ""), dataSources().getMetadata("filename"));
+        assertEquals(asList("default", "default", "default"), dataSources().getMetadata("group"));
         assertEquals(asList("", "xml", ""), dataSources().getMetadata("extension"));
         assertEquals(asList("unknown", "pom.xml", "server.invalid?foo=bar"), dataSources().getMetadata("name"));
     }
diff --git a/freemarker-generator-cli/CHANGELOG.md b/freemarker-generator-cli/CHANGELOG.md
index 7dbdd16..9fa802d 100644
--- a/freemarker-generator-cli/CHANGELOG.md
+++ b/freemarker-generator-cli/CHANGELOG.md
@@ -43,6 +43,7 @@
 * [FREEMARKER-127] Site build fails with missing "org/apache/maven/doxia/siterenderer/DocumentContent"
 
 ### Internal
+* [FREEMARKER-174] Don't expose "DataSources" in the FreeMarker context
 * [FREEMARKER-172] Refactor DataSourceFactory
 * [FREEMARKER-164] Use default unsafe FreeMarker configuration
 * [FREEMARKER-153] FreeMarker Generator release preparations
@@ -71,4 +72,5 @@
 [FREEMARKER-164]: https://issues.apache.org/jira/browse/FREEMARKER-164
 [FREEMARKER-168]: https://issues.apache.org/jira/browse/FREEMARKER-168
 [FREEMARKER-172]: https://issues.apache.org/jira/browse/FREEMARKER-172
-[FREEMARKER-173]: https://issues.apache.org/jira/browse/FREEMARKER-175
+[FREEMARKER-173]: https://issues.apache.org/jira/browse/FREEMARKER-173
+[FREEMARKER-174]: https://issues.apache.org/jira/browse/FREEMARKER-174
diff --git a/freemarker-generator-cli/src/app/examples/templates/datasources.ftl b/freemarker-generator-cli/src/app/examples/templates/datasources.ftl
index 364a7ba..bfb7675 100644
--- a/freemarker-generator-cli/src/app/examples/templates/datasources.ftl
+++ b/freemarker-generator-cli/src/app/examples/templates/datasources.ftl
@@ -56,7 +56,8 @@
 Name            : ${dataSource.name}
 Group           : ${dataSource.group}
 Nr of lines     : ${dataSource.lines?size}
-Content Type    : ${dataSource.contentType}
+ContentType     : ${dataSource.contentType}
+MimeType        : ${dataSource.mimeType}
 Charset         : ${dataSource.charset}
 Extension       : ${dataSource.extension}
 Nr of chars     : ${dataSource.text?length}
diff --git a/freemarker-generator-cli/src/app/scripts/run-examples.bat b/freemarker-generator-cli/src/app/scripts/run-examples.bat
index 5fc0e1c..a957502 100644
--- a/freemarker-generator-cli/src/app/scripts/run-examples.bat
+++ b/freemarker-generator-cli/src/app/scripts/run-examples.bat
@@ -44,6 +44,9 @@
 echo "examples\templates\datasources.ftl"
 $FREEMARKER_CMD -t examples\templates\datasources.ftl -s :data=examples/data > target\out\datasources.txt
 
+echo "examples\templates\datasources.ftl"
+$FREEMARKER_CMD -t examples\templates\datasources.ftl -s https://xkcd.com/info.0.json https://www.google.com > target\out\datasources.txt
+
 REM =========================================================================
 REM Interactive Mode
 REM =========================================================================
diff --git a/freemarker-generator-cli/src/app/scripts/run-examples.sh b/freemarker-generator-cli/src/app/scripts/run-examples.sh
index d0f42b7..a8c64f6 100755
--- a/freemarker-generator-cli/src/app/scripts/run-examples.sh
+++ b/freemarker-generator-cli/src/app/scripts/run-examples.sh
@@ -47,7 +47,10 @@
 #############################################################################
 
 echo "examples/templates/datasources.ftl"
-$FREEMARKER_CMD -t examples/templates/datasources.ftl -s :data=examples/data > target/out/datasources.txt || { echo >&2 "Test failed.  Aborting."; exit 1; }
+$FREEMARKER_CMD -t examples/templates/datasources.ftl -s :data=examples/data > target/out/file-datasources.txt || { echo >&2 "Test failed.  Aborting."; exit 1; }
+
+echo "examples/templates/datasources.ftl"
+$FREEMARKER_CMD -t examples/templates/datasources.ftl -s https://xkcd.com/info.0.json https://www.google.com > target/out/url-datasources.txt || { echo >&2 "Test failed.  Aborting."; exit 1; }
 
 #############################################################################
 # Interactive Mode
diff --git a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/ConfigurationSupplier.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/ConfigurationSupplier.java
index d936970..820f50d 100644
--- a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/ConfigurationSupplier.java
+++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/ConfigurationSupplier.java
@@ -20,7 +20,6 @@
 import freemarker.template.Configuration;
 import freemarker.template.Version;
 import org.apache.freemarker.generator.base.util.PropertiesTransformer;
-import org.apache.freemarker.generator.cli.model.GeneratorObjectWrapper;
 
 import java.util.Properties;
 import java.util.function.Supplier;
@@ -55,9 +54,6 @@
             // apply all "freemarker.configuration.setting" values
             configuration.setSettings(freeMarkerConfigurationSettings());
 
-            // TODO sgoeschl 2021-02-05 Probably not needed at all since we use the map of data source
-            configuration.setObjectWrapper(new GeneratorObjectWrapper(FREEMARKER_VERSION));
-
             // override current configuration with caller-provided settings
             configuration.setDefaultEncoding(settings.getTemplateEncoding().name());
             configuration.setLocale(settings.getLocale());
diff --git a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/GeneratorObjectWrapper.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/GeneratorObjectWrapper.java
deleted file mode 100644
index 6ed0d39..0000000
--- a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/GeneratorObjectWrapper.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.freemarker.generator.cli.model;
-
-import freemarker.template.DefaultMapAdapter;
-import freemarker.template.DefaultObjectWrapper;
-import freemarker.template.TemplateModel;
-import freemarker.template.TemplateModelException;
-import freemarker.template.Version;
-import org.apache.freemarker.generator.base.datasource.DataSources;
-
-/**
- * Custom FreeMarker object wrapper to expose <code>DataSources</code>
- * as <code>Map</code> in the FreeMarker data model. Please note that
- * this hides ALL operation exposed by "DataSources".
- */
-public class GeneratorObjectWrapper extends DefaultObjectWrapper {
-
-    public GeneratorObjectWrapper(Version incompatibleImprovements) {
-        super(incompatibleImprovements);
-    }
-
-    @Override
-    protected TemplateModel handleUnknownType(Object obj) throws TemplateModelException {
-        if (obj instanceof DataSources) {
-            final DataSources dataSources = (DataSources) obj;
-            return DefaultMapAdapter.adapt((dataSources).toMap(), this);
-        }
-
-        return super.handleUnknownType(obj);
-    }
-}
diff --git a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/task/FreeMarkerTask.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/task/FreeMarkerTask.java
index 1fe6f57..4ae0377 100644
--- a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/task/FreeMarkerTask.java
+++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/task/FreeMarkerTask.java
@@ -116,7 +116,8 @@
     private static Map<String, Object> toTemplateDataModel(DataSources dataSources, Map<String, Object>... maps) {
         final Map<String, Object> result = new HashMap<>();
         Arrays.stream(maps).forEach(result::putAll);
-        result.put(Model.DATASOURCES, dataSources);
+        // expose only the map and not the "DataSources" instance (see FREEMARKER-174)
+        result.put(Model.DATASOURCES, dataSources.toMap());
         return result;
     }
 
diff --git a/freemarker-generator-cli/src/site/markdown/cli/concepts/data-sources.md b/freemarker-generator-cli/src/site/markdown/cli/concepts/data-sources.md
index 7ad0daf..e92df60 100644
--- a/freemarker-generator-cli/src/site/markdown/cli/concepts/data-sources.md
+++ b/freemarker-generator-cli/src/site/markdown/cli/concepts/data-sources.md
@@ -210,11 +210,18 @@
 ### Inspecting A DataSource
 
 ```
-> freemarker-generator -t examples/templates/datasources.ftl user:csv=examples/data/csv/transactions.csv#delimiter=TAB
+> freemarker-generator \
+    -t examples/templates/datasources.ftl \
+    transactions:csv=examples/data/csv/transactions.csv#delimiter=TAB \
+    https://xkcd.com/info.0.json \
+    envvars=env:///
+
+transactions
+==============================================================================
 
 Invoke Arbitrary Methods On DataSource
 ---------------------------------------------------------------------------
-Name            : user
+Name            : transactions
 Group           : csv
 Nr of lines     : 101
 Content Type    : text/csv
@@ -231,7 +238,7 @@
 basename        : transactions
 filename        : transactions.csv
 filepath        : /Users/sgoeschl/work/github/apache/freemarker-generator/freemarker-generator-cli/target/appassembler/examples/data/csv
-name            : user
+name            : transactions
 mimetype        : text/csv
 uri             : file:/Users/sgoeschl/work/github/apache/freemarker-generator/freemarker-generator-cli/target/appassembler/examples/data/csv/transactions.csv
 group           : csv
@@ -239,6 +246,68 @@
 Iterating Over Properties Of A Datasource
 ---------------------------------------------------------------------------
 delimiter       : TAB
+
+https://xkcd.com/info.0.json
+==============================================================================
+
+Invoke Arbitrary Methods On DataSource
+---------------------------------------------------------------------------
+Name            : https://xkcd.com/info.0.json
+Group           : default
+Nr of lines     : 1
+Content Type    : application/json
+Charset         : UTF-8
+Extension       :
+Nr of chars     : 330
+Nr of bytes     : 330
+File name       :
+URI schema      : https
+
+Iterating Over Metadata Of A Datasource
+---------------------------------------------------------------------------
+extension       :
+basename        :
+filename        :
+filepath        : /
+name            : https://xkcd.com/info.0.json
+mimetype        : application/json
+uri             : https://xkcd.com/info.0.json
+group           : default
+
+Iterating Over Properties Of A Datasource
+---------------------------------------------------------------------------
+
+envvars
+==============================================================================
+
+Invoke Arbitrary Methods On DataSource
+---------------------------------------------------------------------------
+Name            : envvars
+Group           : default
+Nr of lines     : 36
+Content Type    : text/plain
+Charset         : UTF-8
+Extension       :
+Nr of chars     : 1,476
+Nr of bytes     : 1,478
+File name       :
+URI schema      : env
+
+Iterating Over Metadata Of A Datasource
+---------------------------------------------------------------------------
+extension       :
+basename        :
+filename        :
+filepath        : /
+name            : envvars
+mimetype        : text/plain
+uri             : env:///
+group           : default
+
+Iterating Over Properties Of A Datasource
+---------------------------------------------------------------------------
+
+
 ```
 
 
diff --git a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ManualTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ManualTest.java
index 1e6600a..b9cce26 100644
--- a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ManualTest.java
+++ b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ManualTest.java
@@ -24,7 +24,7 @@
 public class ManualTest extends AbstractMainTest {
 
     // private static final String CMD = "-V";
-    private static final String CMD = "-t src/app/examples/templates/datasources.ftl -s :csv-data=src/app/examples/data/csv#separator=COLON https://xkcd.com/info.0.json envvars=env:///";
+    private static final String CMD = "-t src/app/examples/templates/datasources.ftl transactions:csv=src/app/examples/data/csv/transactions.csv#delimiter=TAB https://xkcd.com/info.0.json envvars=env:///";
 
     @Override
     public String execute(String commandLine) throws IOException {
diff --git a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/ConfigurationSupplierTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/ConfigurationSupplierTest.java
index 67721b9..3c8f6ef 100644
--- a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/ConfigurationSupplierTest.java
+++ b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/ConfigurationSupplierTest.java
@@ -43,7 +43,7 @@
         assertTrue(configuration.isOutputEncodingSet());
 
         assertFalse(configuration.isCacheStorageExplicitlySet());
-        assertTrue(configuration.isObjectWrapperExplicitlySet());
+        assertFalse(configuration.isObjectWrapperExplicitlySet());
         assertFalse(configuration.isOutputFormatExplicitlySet());
         assertFalse(configuration.isTemplateExceptionHandlerExplicitlySet());
         assertFalse(configuration.isTimeZoneExplicitlySet());
diff --git a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/SuppliersTest.java b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/SuppliersTest.java
index 78b6d68..a12cb1d 100644
--- a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/SuppliersTest.java
+++ b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/SuppliersTest.java
@@ -39,6 +39,7 @@
 
 import static java.util.Collections.singletonList;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
@@ -94,7 +95,7 @@
 
         assertNotNull(configuration.getSharedVariable(Model.TOOLS));
         assertTrue(configuration.isTemplateLoaderExplicitlySet());
-        assertTrue(configuration.isObjectWrapperExplicitlySet());
+        assertFalse(configuration.isObjectWrapperExplicitlySet());
     }
 
     @Test
