diff --git a/Changes b/Changes
index 238af05..abe29f3 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,9 @@
 Revision history for Config-Std
 
+0.904 TBD
+   -  123304 :  'use' to import only one function now works - thanks to Kenneth for the idea
+   - ....
+
 0.903 Fri Oct 6, 2017
    -  general Kwallitee cleanup
    -  warnings cleanup
diff --git a/LICENSE b/LICENSE
index 394c531..2d9174c 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-This software is copyright (c) 2017 by Damian Conway <DCONWAY@cpan.org> & Bill Ricker <BRICKER@cpan.org> & Tom Metro <tmetro@cpan.org>.
+This software is copyright (c) 2022 by Damian Conway <DCONWAY@cpan.org> & Bill Ricker <BRICKER@cpan.org> & Tom Metro <tmetro@cpan.org>.
 
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@ b) the "Artistic License"
 
 --- The GNU General Public License, Version 1, February 1989 ---
 
-This software is Copyright (c) 2017 by Damian Conway <DCONWAY@cpan.org> & Bill Ricker <BRICKER@cpan.org> & Tom Metro <tmetro@cpan.org>.
+This software is Copyright (c) 2022 by Damian Conway <DCONWAY@cpan.org> & Bill Ricker <BRICKER@cpan.org> & Tom Metro <tmetro@cpan.org>.
 
 This is free software, licensed under:
 
@@ -272,7 +272,7 @@ That's all there is to it!
 
 --- The Artistic License 1.0 ---
 
-This software is Copyright (c) 2017 by Damian Conway <DCONWAY@cpan.org> & Bill Ricker <BRICKER@cpan.org> & Tom Metro <tmetro@cpan.org>.
+This software is Copyright (c) 2022 by Damian Conway <DCONWAY@cpan.org> & Bill Ricker <BRICKER@cpan.org> & Tom Metro <tmetro@cpan.org>.
 
 This is free software, licensed under:
 
@@ -292,21 +292,21 @@ Definitions:
 
   - "Package" refers to the collection of files distributed by the Copyright
     Holder, and derivatives of that collection of files created through
-    textual modification. 
+    textual modification.
   - "Standard Version" refers to such a Package if it has not been modified,
     or has been modified in accordance with the wishes of the Copyright
-    Holder. 
+    Holder.
   - "Copyright Holder" is whoever is named in the copyright or copyrights for
-    the package. 
+    the package.
   - "You" is you, if you're thinking about copying or distributing this Package.
   - "Reasonable copying fee" is whatever you can justify on the basis of media
     cost, duplication charges, time of people involved, and so on. (You will
     not be required to justify it to the Copyright Holder, but only to the
-    computing community at large as a market that must bear the fee.) 
+    computing community at large as a market that must bear the fee.)
   - "Freely Available" means that no fee is charged for the item itself, though
     there may be fees involved in handling the item. It also means that
     recipients of the item may redistribute it under the same conditions they
-    received it. 
+    received it.
 
 1. You may make and give away verbatim copies of the source form of the
 Standard Version of this Package without restriction, provided that you
@@ -373,7 +373,7 @@ products derived from this software without specific prior written permission.
 
 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
 WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
 The End
 
diff --git a/MANIFEST b/MANIFEST
index 7972ed7..34a363a 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -16,5 +16,8 @@ t/02rewrite_eq.t
 t/03autoviv.t
 t/comments.t
 t/undef.t
+t/01distribution.t
+t/01.load-import-option.t
+t/01.load-import.t
 LICENSE
 META.json
diff --git a/META.json b/META.json
index 1c08527..b76913d 100644
--- a/META.json
+++ b/META.json
@@ -1,50 +1,69 @@
 {
-   "abstract" : "unknown",
+   "abstract" : "Load and save configuration files in a standard format",
    "author" : [
-      "unknown"
+      "Damian Conway <DCONWAY@cpan.org>",
+      "Bill Ricker <BRICKER@cpan.org>",
+      "Tom Metro <tmetro@cpan.org>"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "ExtUtils::MakeMaker version 7.06, CPAN::Meta::Converter version 2.150005",
+   "generated_by" : "Module::Build version 0.4231",
    "license" : [
-      "unknown"
+      "perl_5"
    ],
    "meta-spec" : {
       "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
-      "version" : "2"
+      "version" : 2
    },
    "name" : "Config-Std",
-   "no_index" : {
-      "directory" : [
-         "t",
-         "inc"
-      ]
-   },
    "prereqs" : {
-      "build" : {
-         "requires" : {
-            "ExtUtils::MakeMaker" : "0"
-         }
-      },
       "configure" : {
          "requires" : {
-            "ExtUtils::MakeMaker" : "0"
+            "Module::Build" : "0.42"
          }
       },
       "runtime" : {
+         "recommends" : {
+            "Test::Distribution" : "0",
+            "Test::Pod" : "0"
+         },
          "requires" : {
             "Class::Std" : "0",
             "Test::More" : "0",
+            "perl" : "v5.7.3",
             "version" : "0"
          }
+      }
+   },
+   "provides" : {
+      "Config::Std" : {
+         "file" : "lib/Config/Std.pm",
+         "version" : "0.904"
       },
-      "test" : {
-         "requires" : {
-            "TAP::Harness" : "3.31"
-         }
+      "Config::Std::Block" : {
+         "file" : "lib/Config/Std.pm"
+      },
+      "Config::Std::Comment" : {
+         "file" : "lib/Config/Std.pm"
+      },
+      "Config::Std::Gap" : {
+         "file" : "lib/Config/Std.pm"
+      },
+      "Config::Std::Hash" : {
+         "file" : "lib/Config/Std.pm"
+      },
+      "Config::Std::Keyval" : {
+         "file" : "lib/Config/Std.pm"
       }
    },
    "release_status" : "stable",
-   "version" : "0.903",
-   "x_serialization_backend" : "JSON::PP version 2.27300"
+   "resources" : {
+      "license" : [
+         "http://dev.perl.org/licenses/"
+      ],
+      "repository" : {
+         "url" : "https://github.com/n1vux/Config-Std-Perl"
+      }
+   },
+   "version" : "0.904",
+   "x_serialization_backend" : "JSON::PP version 4.06"
 }
-
diff --git a/META.yml b/META.yml
index da17611..f862eeb 100644
--- a/META.yml
+++ b/META.yml
@@ -1,27 +1,43 @@
 ---
-abstract: unknown
+abstract: 'Load and save configuration files in a standard format'
 author:
-  - unknown
-build_requires:
-  ExtUtils::MakeMaker: '0'
-  TAP::Harness: '3.31'
+  - 'Damian Conway <DCONWAY@cpan.org>'
+  - 'Bill Ricker <BRICKER@cpan.org>'
+  - 'Tom Metro <tmetro@cpan.org>'
+build_requires: {}
 configure_requires:
-  ExtUtils::MakeMaker: '0'
+  Module::Build: '0.42'
 dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 7.06, CPAN::Meta::Converter version 2.150005'
-license: unknown
+generated_by: 'Module::Build version 0.4231, CPAN::Meta::Converter version 2.150010'
+license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
   version: '1.4'
 name: Config-Std
-no_index:
-  directory:
-    - t
-    - inc
+provides:
+  Config::Std:
+    file: lib/Config/Std.pm
+    version: '0.904'
+  Config::Std::Block:
+    file: lib/Config/Std.pm
+  Config::Std::Comment:
+    file: lib/Config/Std.pm
+  Config::Std::Gap:
+    file: lib/Config/Std.pm
+  Config::Std::Hash:
+    file: lib/Config/Std.pm
+  Config::Std::Keyval:
+    file: lib/Config/Std.pm
+recommends:
+  Test::Distribution: '0'
+  Test::Pod: '0'
 requires:
   Class::Std: '0'
   Test::More: '0'
+  perl: v5.7.3
   version: '0'
-version: '0.903'
-x_serialization_backend: 'CPAN::Meta::YAML version 0.016'
-
+resources:
+  license: http://dev.perl.org/licenses/
+  repository: https://github.com/n1vux/Config-Std-Perl
+version: '0.904'
+x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff --git a/Makefile.PL b/Makefile.PL
index 51a835e..dbb673e 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -1,20 +1,17 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.4224
+# Note: this file was auto-generated by Module::Build::Compat version 0.4231
 require 5.007003;
 use ExtUtils::MakeMaker;
 WriteMakefile
 (
-  'PL_FILES' => {},
   'PREREQ_PM' => {
+                   'version' => 0,
                    'Test::More' => 0,
-                   'Class::Std' => 0,
-                   'version' => 0
+                   'Class::Std' => 0
                  },
-  'VERSION_FROM' => 'lib/Config/Std.pm',
-  'TEST_REQUIRES' => {
-                'TAP::Harness' => 3.31,  # you can use older but must set HARNESS_OPTIONS=j1 if threaded
-                },
-  'INSTALLDIRS' => 'site',
   'NAME' => 'Config::Std',
-  'EXE_FILES' => []
+  'EXE_FILES' => [],
+  'PL_FILES' => {},
+  'VERSION_FROM' => 'lib/Config/Std.pm',
+  'INSTALLDIRS' => 'site'
 )
 ;
diff --git a/README b/README
index 9b6fec1..078e0d3 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-Config::Std version 0.903
+Config::Std version 0.904
 
 This module implements yet another damn configuration-file system.
 
@@ -34,10 +34,10 @@ DEPENDENCIES
 None.
 
 
-COPYRIGHT AND LICENCE
+COPYRIGHT AND LICENSE
 
 Copyright (C) 2005, Damian Conway; 
-Copyright (C) 2011,2013,2017 William Ricker + Tom Metro, maintainers for Boston.PM
+Copyright (C) 2011,2013,2017,2018 William Ricker + Tom Metro, maintainers for Boston.PM
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself.
diff --git a/lib/Config/Std.pm b/lib/Config/Std.pm
index cad765e..fa8039a 100644
--- a/lib/Config/Std.pm
+++ b/lib/Config/Std.pm
@@ -1,6 +1,6 @@
 package Config::Std;
 
-our $VERSION = '0.903';
+our $VERSION = '0.904';
 
 use 5.007_003; # Testing with 5.8.1 since that's cpanm minimum :-)
 use strict;
@@ -10,16 +10,32 @@ my %global_def_sep;
 my %global_inter_gap;
 
 sub import {
-    my ($package, $opt_ref) = @_;
+    use List::Util qw[first];
+    my ($package, @args) = @_;
+    my $opt_ref = ( first { ref $_ } @args )
+                || {} ;
+    @args = grep { ! ref $_ } @args;
+    @args = (qw( read_config write_config ))
+        unless @args;
+    ### DEBUG # uncomment if curious 
+    # use Data::Dumper;
+    # warn Data::Dumper->Dump([ \@args, $opt_ref ], [ qw(args opts )] );
+    ######
+
     my $caller = caller();
     $global_def_sep{$caller} = $opt_ref->{def_sep};
     $global_inter_gap{$caller} = $opt_ref->{def_gap};
-    for my $sub_name (qw( read_config write_config )) {
+    for my $sub_name (@args) {
         $opt_ref->{$sub_name} ||= $sub_name;
     }
+    ### DEBUG
+    # warn Data::Dumper->Dump([ \@args, $opt_ref ], [ qw(args opts )] );
+    ######
     no strict "refs";
-    *{$caller.'::'.$opt_ref->{read_config}}  = \&Config::Std::Hash::read_config;
-    *{$caller.'::'.$opt_ref->{write_config}} = \&Config::Std::Hash::write_config;
+    *{$caller.'::'.$opt_ref->{read_config}}  = \&Config::Std::Hash::read_config
+        if $opt_ref->{read_config};
+    *{$caller.'::'.$opt_ref->{write_config}} = \&Config::Std::Hash::write_config
+        if $opt_ref->{write_config};
 }
 
 package Config::Std::Gap;
@@ -508,7 +524,7 @@ Config::Std - Load and save configuration files in a standard format
 
 =head1 VERSION
 
-This document describes Config::Std version 0.903
+This document describes Config::Std version 0.904
 
 
 =head1 SYNOPSIS
@@ -747,7 +763,7 @@ C<S<["Moe\n(the bartender)", "Smithers\n(the dogsbody)"]>>
 
 =head2 Internal representation
 
-Each section label in a configuration file becomes a top-level hash key whe
+Each section label in a configuration file becomes a top-level hash key when
 the configuration file is read in. The corresponding value is a nested hash
 reference.
 
@@ -802,7 +818,7 @@ would be read into a hash whose internal structure looked like this:
 =head1 INTERFACE
 
 The following subroutines are exported automatically whenever the module is
-loaded...
+loaded (unless specified otherwise) ...
 
 =over
 
@@ -890,6 +906,19 @@ loading it with the appropriate options:
 
     update_ini(%config_hash);
 
+As of version 0.904, the module will accept standard import list to import only one of the two functions,
+e.g. to declare and enforce intent to be read-only or write only.
+
+    use Config::Std qw(read_config)
+
+    use Config::Std q(read_config), { read_config => 'get_ini', def_sep => '=' };
+
+Note that renaming only one of the two is inadequate to prevent both being exported 
+(or imported from your point of view):
+
+    use Config::Std { read_config => 'get_ini', def_sep => '=' };
+    # will import get_init and write_config
+
 You can also control how much spacing the module puts between single-
 line values when they are first written to a file, by using the
 C<def_gap> option:
@@ -1047,7 +1076,7 @@ Tom Metro      C<< <tmetro@cpan.org> >>
 =head1 LICENCE AND COPYRIGHT
 
 Copyright (c) 2005, Damian Conway C<< <DCONWAY@cpan.org> >>.
-Copyright (c) 2011,2014,2017, D.Conway, W.Ricker C<< <BRICKER@cpan.org> >> All rights reserved.
+Copyright (c) 2011,2014,2017,2018 D.Conway, W.Ricker C<< <BRICKER@cpan.org> >> All rights reserved.
 
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
diff --git a/t/01.load-import-option.t b/t/01.load-import-option.t
new file mode 100644
index 0000000..8322b0f
--- /dev/null
+++ b/t/01.load-import-option.t
@@ -0,0 +1,12 @@
+use Test::More tests => 4;
+
+BEGIN {
+use_ok( 'Config::Std', 'read_config' , { def_gap=>1} );
+}
+
+is(    *no_such{CODE},     undef, "test the test");
+is(ref *read_config{CODE}, 'CODE', "imports requested func");
+is(    *write_config{CODE}, undef, "does NOT import non-requested func");
+
+
+diag( "Testing Config::Std $Config::Std::VERSION" );
diff --git a/t/01.load-import.t b/t/01.load-import.t
new file mode 100644
index 0000000..d014791
--- /dev/null
+++ b/t/01.load-import.t
@@ -0,0 +1,8 @@
+use Test::More tests => 1;
+
+BEGIN {
+    # Test classical use of use to load only read_config, to allow read only config usage
+use_ok( 'Config::Std', 'read_config' );
+}
+
+diag( "Testing Config::Std $Config::Std::VERSION" );
diff --git a/t/01distribution.t b/t/01distribution.t
new file mode 100644
index 0000000..6f72c28
--- /dev/null
+++ b/t/01distribution.t
@@ -0,0 +1,19 @@
+#! perl
+
+use Test::More;
+plan skip_all => "Developer tests" unless -d ".svn" or -d ".git";
+
+
+  BEGIN {
+        eval {
+                require Test::Distribution;
+        };
+        if($@) {
+                plan skip_all => 'Test::Distribution not installed';
+        }
+        else {
+                import Test::Distribution distversion=>1;
+        }
+   }
+
+