diff --git a/Changes b/Changes
index 00165a7..b229ee2 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,7 @@
+0.56 2024-08-23
+        - Improve slim test for plugin support
+          (korapxml2...; diewald)
+
 0.55 2024-07-03
         - Removed deprecated doc_link_to helper. (diewald)
         - Removed deprecated doc_ext_link_to helper. (diewald)
diff --git a/Dockerfile b/Dockerfile
index 5a0510d..28d6a74 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -99,8 +99,9 @@
 
 # Slimming (https://github.com/slimtoolkit/slim):
 # slim build --http-probe=true \
-#            --exec="perl Makefile.PL && make test" \
+#            --exec="perl Makefile.PL && make test && unzip -v" \
 #            --include-workdir=true \
+#            --include-path="/usr/local/share/perl5/site_perl/KorAP/" \
 #            --tag korap/kalamar:x.xx \
 #            --tag korap/kalamar:latest \
 #            korap/kalamar:x.xx-large
\ No newline at end of file
diff --git a/lib/Kalamar.pm b/lib/Kalamar.pm
index 2afe546..0998ed9 100644
--- a/lib/Kalamar.pm
+++ b/lib/Kalamar.pm
@@ -8,7 +8,7 @@
 use List::Util qw!none uniq!;
 
 # Minor version - may be patched from package.json
-our $VERSION = '0.55';
+our $VERSION = '0.56';
 
 # Supported version of Backend API
 our $API_VERSION = '1.0';
diff --git a/t/plugin/conllu2korapxml.t b/t/plugin/conllu2korapxml.t
index f217fb8..7e6b8f7 100644
--- a/t/plugin/conllu2korapxml.t
+++ b/t/plugin/conllu2korapxml.t
@@ -8,6 +8,13 @@
   exit;
 };
 
+use_ok('Log::Any::Adapter::Stderr');
+use_ok('Log::Any::Adapter::Stdout');
+use_ok('Log::Any::Adapter::Null');
+use_ok('Log::Any::Adapter::Multiplex');
+use_ok('Log::Any::Adapter::Syslog');
+use_ok('Log::Any::Adapter::Test');
+
 my $t = Test::Mojo->new(Kalamar => {
   Kalamar => {
     plugins => ['KorAPXML2CoNLLU']
diff --git a/t/plugin/korapxml2krill.t b/t/plugin/korapxml2krill.t
index 52a0791..d9e80d3 100644
--- a/t/plugin/korapxml2krill.t
+++ b/t/plugin/korapxml2krill.t
@@ -1,25 +1,50 @@
-use Test::More;
+use strict;
+use warnings;
 use Test::Mojo;
 use Test::Output;
+use Test::More;
+
+our %ENV;
+
 eval {
   require KorAP::XML::Krill;
   1;
 } || do {
   plan skip_all => "KorAP::XML::Krill is not installed";
+  exit;
 };
+
 my $t = Test::Mojo->new(Kalamar => {
   Kalamar => {
     plugins => ['KorAPXML2Krill']
   }
 });
+
 my $app = $t->app;
 my $cmds = $app->commands;
+
+use_ok('Method::Generate::DemolishAll');
+
 ok(grep/::KorAPXML2Krill/, @{$cmds->namespaces}, 'Namespace is set');
+
 stdout_like(
   sub {
     $cmds->run('korapxml2krill','-v');
   },
   qr{\[archive\|extract\]}
 );
+
+unless (grep { -x "$_/unzip"} split /:/, $ENV{PATH}) {
+  fail("unzip is not installed");
+};
+
+stdout_like(
+  sub {
+    return system('unzip','-v');
+  },
+  qr/UnZip/
+);
+
+
 done_testing;
-1;
+__END__
