diff --git a/.gitignore b/.gitignore
index f292d70..0637cc3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1 @@
-SOURCES/libpeas-1.20.0.tar.xz
 SOURCES/microdnf-2.tar.gz
diff --git a/.microdnf.metadata b/.microdnf.metadata
index 4f610a9..b66d4de 100644
--- a/.microdnf.metadata
+++ b/.microdnf.metadata
@@ -1,2 +1 @@
-3844f00f0ab3ded28c6a8c6c1c3186856bccdc30 SOURCES/libpeas-1.20.0.tar.xz
 5491a82ed3ab1b3bc86a6da3b5417e0e45fb4eb0 SOURCES/microdnf-2.tar.gz
diff --git a/SOURCES/0001-print-downloading-packages-only-once.patch b/SOURCES/0001-print-downloading-packages-only-once.patch
new file mode 100644
index 0000000..2c0b16a
--- /dev/null
+++ b/SOURCES/0001-print-downloading-packages-only-once.patch
@@ -0,0 +1,47 @@
+From 15837579fef30f1e8fe1aa3017eb5441caf3f09c Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenko@redhat.com>
+Date: Fri, 17 Feb 2017 21:46:28 +0100
+Subject: [PATCH 1/2] print downloading packages only once
+
+Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
+---
+ dnf/dnf-main.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/dnf/dnf-main.c b/dnf/dnf-main.c
+index 610ad74..6473bb3 100644
+--- a/dnf/dnf-main.c
++++ b/dnf/dnf-main.c
+@@ -29,6 +29,7 @@
+ static gboolean opt_yes = TRUE;
+ static gboolean opt_nodocs = FALSE;
+ static gboolean show_help = FALSE;
++static gboolean dl_pkgs_printed = FALSE;
+ 
+ static gboolean
+ process_global_option (const gchar  *option_name,
+@@ -115,8 +116,11 @@ state_action_changed_cb (DnfState       *state,
+         g_print("Downloading metadata...\n");
+         break;
+       case DNF_STATE_ACTION_DOWNLOAD_PACKAGES:
+-        g_print("Downloading: %s (%u%%)\n", action_hint,
+-                dnf_state_get_percentage (state));
++        if (!dl_pkgs_printed)
++          {
++            g_print("Downloading packages...\n");
++            dl_pkgs_printed = TRUE;
++          }
+         break;
+       case DNF_STATE_ACTION_TEST_COMMIT:
+         g_print("Running transaction test...\n");
+@@ -141,6 +145,7 @@ state_action_changed_cb (DnfState       *state,
+         break;
+       case DNF_STATE_ACTION_CLEANUP:
+         g_print("Cleanup: %s\n", action_hint);
++        break;
+       default:
+         break;
+     }
+-- 
+2.12.1
+
diff --git a/SOURCES/0001-use-bundled-libpeas-in-case-proper-one-not-found.patch b/SOURCES/0001-use-bundled-libpeas-in-case-proper-one-not-found.patch
deleted file mode 100644
index 869b0f6..0000000
--- a/SOURCES/0001-use-bundled-libpeas-in-case-proper-one-not-found.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 06b6c44a0236bd499e71c2f56d0f5907e0a642c5 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenko@redhat.com>
-Date: Thu, 19 Jan 2017 16:44:53 +0100
-Subject: [PATCH] use bundled libpeas in case proper one not found
-
-Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
----
- CMakeLists.txt | 27 ++++++++++++++++++++++++++-
- 1 file changed, 26 insertions(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 04ca35a..e1ab4e3 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -16,9 +16,34 @@ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=gnu11")
- find_package (PkgConfig REQUIRED)
- pkg_check_modules (GLIB REQUIRED glib-2.0>=2.44.0)
- pkg_check_modules (GOBJECT REQUIRED gobject-2.0>=2.44.0)
--pkg_check_modules (PEAS REQUIRED libpeas-1.0>=1.20.0)
-+pkg_check_modules (PEAS QUIET libpeas-1.0>=1.20.0)
- pkg_check_modules (LIBDNF REQUIRED libdnf>=0.7.0)
- 
-+if (NOT PEAS_FOUND)
-+  include (ExternalProject)
-+  set (PEAS_ARCHIVE ${CMAKE_CURRENT_LIST_DIR}/libpeas-1.20.0.tar.xz)
-+  set (PEAS_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/libpeas)
-+  pkg_check_modules (PEAS_INTERNALS REQUIRED glib-2.0>=2.38.0 gobject-2.0>=2.38.0 gmodule-2.0>=2.38.0 gio-2.0>=2.32.0 gobject-introspection-1.0>=1.39.0)
-+  ExternalProject_Add (
-+    libpeas_external
-+    URL https://download.gnome.org/sources/libpeas/1.20/libpeas-1.20.0.tar.xz
-+    URL_HASH SHA256=f392fffe2dc00072a51bb2a1b274224a06bdc5f9c3b3c0ac4816909e9933d354
-+    CONFIGURE_COMMAND
-+      COMMAND ./configure --prefix=${PEAS_INSTALL_PREFIX} --enable-static --disable-shared --disable-lua5.1 --disable-luajit --disable-python2 --disable-python3 --disable-gtk --disable-glade-catalog
-+    BUILD_COMMAND
-+      COMMAND make
-+    INSTALL_COMMAND
-+      COMMAND make install
-+    BUILD_IN_SOURCE 1
-+  )
-+
-+  add_library (libpeas STATIC IMPORTED)
-+  add_dependencies (libpeas libpeas_external)
-+  set_target_properties (libpeas PROPERTIES IMPORTED_LOCATION ${PEAS_INSTALL_PREFIX}/lib/libpeas-1.0.a)
-+  set (PEAS_INCLUDE_DIRS ${PEAS_INSTALL_PREFIX}/include/libpeas-1.0;${PEAS_INTERNALS_STATIC_INCLUDE_DIRS})
-+  set (PEAS_LIBRARIES libpeas;${PEAS_INTERNALS_STATIC_LIBRARIES})
-+endif ()
-+
- set (PKG_LIBDIR ${CMAKE_INSTALL_FULL_LIBDIR}/dnf)
- set (PKG_DATADIR ${CMAKE_INSTALL_FULL_DATADIR}/dnf)
- add_definitions (-DPACKAGE_LIBDIR="${PKG_LIBDIR}")
--- 
-2.7.4
-
diff --git a/SOURCES/0002-do-not-fail-on-empty-transactions.patch b/SOURCES/0002-do-not-fail-on-empty-transactions.patch
new file mode 100644
index 0000000..318a891
--- /dev/null
+++ b/SOURCES/0002-do-not-fail-on-empty-transactions.patch
@@ -0,0 +1,129 @@
+From 5b9caacf40e20e74298da29b0e5de525096c0e13 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <ignatenko@redhat.com>
+Date: Sat, 4 Mar 2017 16:56:43 +0100
+Subject: [PATCH 2/2] do not fail on empty transactions
+
+Closes: https://github.com/rpm-software-management/microdnf/issues/3
+Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
+---
+ dnf/dnf-utils.c                           | 16 +++++++++-------
+ dnf/dnf-utils.h                           |  4 ++--
+ dnf/plugins/install/dnf-command-install.c |  5 +++--
+ dnf/plugins/update/dnf-command-update.c   |  5 +++--
+ 4 files changed, 17 insertions(+), 13 deletions(-)
+
+diff --git a/dnf/dnf-utils.c b/dnf/dnf-utils.c
+index 16f4d08..b3d087c 100644
+--- a/dnf/dnf-utils.c
++++ b/dnf/dnf-utils.c
+@@ -2,7 +2,7 @@
+  *
+  * Copyright © 2010-2015 Richard Hughes <richard@hughsie.com>
+  * Copyright © 2016 Colin Walters <walters@verbum.org>
+- * Copyright © 2016 Igor Gnatenko <ignatenko@redhat.com>
++ * Copyright © 2016-2017 Igor Gnatenko <ignatenko@redhat.com>
+  *
+  * This program is free software: you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published by
+@@ -20,7 +20,7 @@
+ 
+ #include "dnf-utils.h"
+ 
+-void
++gboolean
+ dnf_utils_print_transaction (DnfContext *ctx)
+ {
+   g_autoptr(GPtrArray) pkgs = dnf_goal_get_packages (dnf_context_get_goal (ctx),
+@@ -30,16 +30,18 @@ dnf_utils_print_transaction (DnfContext *ctx)
+                                                      DNF_PACKAGE_INFO_UPDATE,
+                                                      DNF_PACKAGE_INFO_REMOVE,
+                                                      -1);
+-  g_print ("Transaction: ");
++
+   if (pkgs->len == 0)
+-    g_print ("(empty)");
+-  else
+-    g_print ("%u packages", pkgs->len);
+-  g_print ("\n");
++    {
++      g_print ("Nothing to do.\n");
++      return FALSE;
++    }
++  g_print ("Transaction: %u packages\n", pkgs->len);
+ 
+   for (guint i = 0; i < pkgs->len; i++)
+     {
+       DnfPackage *pkg = pkgs->pdata[i];
+       g_print ("%s (%s)\n", dnf_package_get_nevra (pkg), dnf_package_get_reponame (pkg));
+     }
++  return TRUE;
+ }
+diff --git a/dnf/dnf-utils.h b/dnf/dnf-utils.h
+index d649109..f894800 100644
+--- a/dnf/dnf-utils.h
++++ b/dnf/dnf-utils.h
+@@ -1,7 +1,7 @@
+ /* dnf-utils.h
+  *
+  * Copyright © 2016 Colin Walters <walters@verbum.org>
+- * Copyright © 2016 Igor Gnatenko <ignatenko@redhat.com>
++ * Copyright © 2016-2017 Igor Gnatenko <ignatenko@redhat.com>
+  *
+  * This program is free software: you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published by
+@@ -24,6 +24,6 @@
+ 
+ G_BEGIN_DECLS
+ 
+-void dnf_utils_print_transaction (DnfContext *ctx);
++gboolean dnf_utils_print_transaction (DnfContext *ctx);
+ 
+ G_END_DECLS
+diff --git a/dnf/plugins/install/dnf-command-install.c b/dnf/plugins/install/dnf-command-install.c
+index 6f27768..ea549da 100644
+--- a/dnf/plugins/install/dnf-command-install.c
++++ b/dnf/plugins/install/dnf-command-install.c
+@@ -2,7 +2,7 @@
+  *
+  * Copyright © 2010-2015 Richard Hughes <richard@hughsie.com>
+  * Copyright © 2016 Colin Walters <walters@verbum.org>
+- * Copyright © 2016 Igor Gnatenko <ignatenko@redhat.com>
++ * Copyright © 2016-2017 Igor Gnatenko <ignatenko@redhat.com>
+  *
+  * This program is free software: you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published by
+@@ -75,7 +75,8 @@ dnf_command_install_run (DnfCommand      *cmd,
+     }
+   if (!dnf_goal_depsolve (dnf_context_get_goal (ctx), DNF_INSTALL, error))
+     return FALSE;
+-  dnf_utils_print_transaction (ctx);
++  if (!dnf_utils_print_transaction (ctx))
++    return TRUE;
+   if (!dnf_context_run (ctx, NULL, error))
+     return FALSE;
+   g_print ("Complete.\n");
+diff --git a/dnf/plugins/update/dnf-command-update.c b/dnf/plugins/update/dnf-command-update.c
+index 33f7974..652d902 100644
+--- a/dnf/plugins/update/dnf-command-update.c
++++ b/dnf/plugins/update/dnf-command-update.c
+@@ -1,6 +1,6 @@
+ /* dnf-command-update.c
+  *
+- * Copyright © 2016 Igor Gnatenko <ignatenko@redhat.com>
++ * Copyright © 2016-2017 Igor Gnatenko <ignatenko@redhat.com>
+  *
+  * This program is free software: you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published by
+@@ -73,7 +73,8 @@ dnf_command_update_run (DnfCommand      *cmd,
+ 
+   if (!dnf_goal_depsolve (dnf_context_get_goal (ctx), 0, error))
+     return FALSE;
+-  dnf_utils_print_transaction (ctx);
++  if (!dnf_utils_print_transaction (ctx))
++    return TRUE;
+   if (!dnf_context_run (ctx, NULL, error))
+     return FALSE;
+   g_print ("Complete.\n");
+-- 
+2.12.1
+
diff --git a/SOURCES/0002-print-downloading-packages-only-once.patch b/SOURCES/0002-print-downloading-packages-only-once.patch
deleted file mode 100644
index 87bed96..0000000
--- a/SOURCES/0002-print-downloading-packages-only-once.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 15837579fef30f1e8fe1aa3017eb5441caf3f09c Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenko@redhat.com>
-Date: Fri, 17 Feb 2017 21:46:28 +0100
-Subject: [PATCH 2/3] print downloading packages only once
-
-Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
----
- dnf/dnf-main.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/dnf/dnf-main.c b/dnf/dnf-main.c
-index 610ad74..6473bb3 100644
---- a/dnf/dnf-main.c
-+++ b/dnf/dnf-main.c
-@@ -29,6 +29,7 @@
- static gboolean opt_yes = TRUE;
- static gboolean opt_nodocs = FALSE;
- static gboolean show_help = FALSE;
-+static gboolean dl_pkgs_printed = FALSE;
- 
- static gboolean
- process_global_option (const gchar  *option_name,
-@@ -115,8 +116,11 @@ state_action_changed_cb (DnfState       *state,
-         g_print("Downloading metadata...\n");
-         break;
-       case DNF_STATE_ACTION_DOWNLOAD_PACKAGES:
--        g_print("Downloading: %s (%u%%)\n", action_hint,
--                dnf_state_get_percentage (state));
-+        if (!dl_pkgs_printed)
-+          {
-+            g_print("Downloading packages...\n");
-+            dl_pkgs_printed = TRUE;
-+          }
-         break;
-       case DNF_STATE_ACTION_TEST_COMMIT:
-         g_print("Running transaction test...\n");
-@@ -141,6 +145,7 @@ state_action_changed_cb (DnfState       *state,
-         break;
-       case DNF_STATE_ACTION_CLEANUP:
-         g_print("Cleanup: %s\n", action_hint);
-+        break;
-       default:
-         break;
-     }
--- 
-2.7.4
-
diff --git a/SOURCES/0003-do-not-fail-on-empty-transactions.patch b/SOURCES/0003-do-not-fail-on-empty-transactions.patch
deleted file mode 100644
index 63bdae3..0000000
--- a/SOURCES/0003-do-not-fail-on-empty-transactions.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 5b9caacf40e20e74298da29b0e5de525096c0e13 Mon Sep 17 00:00:00 2001
-From: Igor Gnatenko <ignatenko@redhat.com>
-Date: Sat, 4 Mar 2017 16:56:43 +0100
-Subject: [PATCH 3/3] do not fail on empty transactions
-
-Closes: https://github.com/rpm-software-management/microdnf/issues/3
-Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
----
- dnf/dnf-utils.c                           | 16 +++++++++-------
- dnf/dnf-utils.h                           |  4 ++--
- dnf/plugins/install/dnf-command-install.c |  5 +++--
- dnf/plugins/update/dnf-command-update.c   |  5 +++--
- 4 files changed, 17 insertions(+), 13 deletions(-)
-
-diff --git a/dnf/dnf-utils.c b/dnf/dnf-utils.c
-index 16f4d08..b3d087c 100644
---- a/dnf/dnf-utils.c
-+++ b/dnf/dnf-utils.c
-@@ -2,7 +2,7 @@
-  *
-  * Copyright © 2010-2015 Richard Hughes <richard@hughsie.com>
-  * Copyright © 2016 Colin Walters <walters@verbum.org>
-- * Copyright © 2016 Igor Gnatenko <ignatenko@redhat.com>
-+ * Copyright © 2016-2017 Igor Gnatenko <ignatenko@redhat.com>
-  *
-  * This program is free software: you can redistribute it and/or modify
-  * it under the terms of the GNU General Public License as published by
-@@ -20,7 +20,7 @@
- 
- #include "dnf-utils.h"
- 
--void
-+gboolean
- dnf_utils_print_transaction (DnfContext *ctx)
- {
-   g_autoptr(GPtrArray) pkgs = dnf_goal_get_packages (dnf_context_get_goal (ctx),
-@@ -30,16 +30,18 @@ dnf_utils_print_transaction (DnfContext *ctx)
-                                                      DNF_PACKAGE_INFO_UPDATE,
-                                                      DNF_PACKAGE_INFO_REMOVE,
-                                                      -1);
--  g_print ("Transaction: ");
-+
-   if (pkgs->len == 0)
--    g_print ("(empty)");
--  else
--    g_print ("%u packages", pkgs->len);
--  g_print ("\n");
-+    {
-+      g_print ("Nothing to do.\n");
-+      return FALSE;
-+    }
-+  g_print ("Transaction: %u packages\n", pkgs->len);
- 
-   for (guint i = 0; i < pkgs->len; i++)
-     {
-       DnfPackage *pkg = pkgs->pdata[i];
-       g_print ("%s (%s)\n", dnf_package_get_nevra (pkg), dnf_package_get_reponame (pkg));
-     }
-+  return TRUE;
- }
-diff --git a/dnf/dnf-utils.h b/dnf/dnf-utils.h
-index d649109..f894800 100644
---- a/dnf/dnf-utils.h
-+++ b/dnf/dnf-utils.h
-@@ -1,7 +1,7 @@
- /* dnf-utils.h
-  *
-  * Copyright © 2016 Colin Walters <walters@verbum.org>
-- * Copyright © 2016 Igor Gnatenko <ignatenko@redhat.com>
-+ * Copyright © 2016-2017 Igor Gnatenko <ignatenko@redhat.com>
-  *
-  * This program is free software: you can redistribute it and/or modify
-  * it under the terms of the GNU General Public License as published by
-@@ -24,6 +24,6 @@
- 
- G_BEGIN_DECLS
- 
--void dnf_utils_print_transaction (DnfContext *ctx);
-+gboolean dnf_utils_print_transaction (DnfContext *ctx);
- 
- G_END_DECLS
-diff --git a/dnf/plugins/install/dnf-command-install.c b/dnf/plugins/install/dnf-command-install.c
-index 6f27768..ea549da 100644
---- a/dnf/plugins/install/dnf-command-install.c
-+++ b/dnf/plugins/install/dnf-command-install.c
-@@ -2,7 +2,7 @@
-  *
-  * Copyright © 2010-2015 Richard Hughes <richard@hughsie.com>
-  * Copyright © 2016 Colin Walters <walters@verbum.org>
-- * Copyright © 2016 Igor Gnatenko <ignatenko@redhat.com>
-+ * Copyright © 2016-2017 Igor Gnatenko <ignatenko@redhat.com>
-  *
-  * This program is free software: you can redistribute it and/or modify
-  * it under the terms of the GNU General Public License as published by
-@@ -75,7 +75,8 @@ dnf_command_install_run (DnfCommand      *cmd,
-     }
-   if (!dnf_goal_depsolve (dnf_context_get_goal (ctx), DNF_INSTALL, error))
-     return FALSE;
--  dnf_utils_print_transaction (ctx);
-+  if (!dnf_utils_print_transaction (ctx))
-+    return TRUE;
-   if (!dnf_context_run (ctx, NULL, error))
-     return FALSE;
-   g_print ("Complete.\n");
-diff --git a/dnf/plugins/update/dnf-command-update.c b/dnf/plugins/update/dnf-command-update.c
-index 33f7974..652d902 100644
---- a/dnf/plugins/update/dnf-command-update.c
-+++ b/dnf/plugins/update/dnf-command-update.c
-@@ -1,6 +1,6 @@
- /* dnf-command-update.c
-  *
-- * Copyright © 2016 Igor Gnatenko <ignatenko@redhat.com>
-+ * Copyright © 2016-2017 Igor Gnatenko <ignatenko@redhat.com>
-  *
-  * This program is free software: you can redistribute it and/or modify
-  * it under the terms of the GNU General Public License as published by
-@@ -73,7 +73,8 @@ dnf_command_update_run (DnfCommand      *cmd,
- 
-   if (!dnf_goal_depsolve (dnf_context_get_goal (ctx), 0, error))
-     return FALSE;
--  dnf_utils_print_transaction (ctx);
-+  if (!dnf_utils_print_transaction (ctx))
-+    return TRUE;
-   if (!dnf_context_run (ctx, NULL, error))
-     return FALSE;
-   g_print ("Complete.\n");
--- 
-2.7.4
-
diff --git a/SPECS/microdnf.spec b/SPECS/microdnf.spec
index 52950de..68ce045 100644
--- a/SPECS/microdnf.spec
+++ b/SPECS/microdnf.spec
@@ -8,34 +8,27 @@
 
 Name:           microdnf
 Version:        2
-Release:        3%{?dist}.1.1
+Release:        4%{?dist}
 Summary:        The microdnf package contains a limited functionality package manager written in C
 
-License:        GPLv3+ and LGPLv2+
+License:        GPLv3+
 URL:            https://github.com/rpm-software-management/microdnf
 Source0:        %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
-Source1:        https://download.gnome.org/sources/libpeas/1.20/libpeas-1.20.0.tar.xz
-Patch0001:      0001-use-bundled-libpeas-in-case-proper-one-not-found.patch
-Patch0002:      0002-print-downloading-packages-only-once.patch
-Patch0003:      0003-do-not-fail-on-empty-transactions.patch
+Patch0001:      0001-print-downloading-packages-only-once.patch
+Patch0002:      0002-do-not-fail-on-empty-transactions.patch
 
 BuildRequires:  gcc
 BuildRequires:  %{buildsys_req}
 BuildRequires:  pkgconfig(glib-2.0) >= 2.44.0
 BuildRequires:  pkgconfig(gobject-2.0) >= 2.44.0
+BuildRequires:  pkgconfig(libpeas-1.0) >= 1.20.0
 BuildRequires:  pkgconfig(libdnf) >= 0.7.0
-BuildRequires:  pkgconfig(gmodule-2.0) >= 2.38.0
-BuildRequires:  pkgconfig(gio-2.0) >= 2.32.0
-BuildRequires:  pkgconfig(gobject-introspection-1.0) >= 1.39.0
-BuildRequires:  intltool
-Provides:       bundled(libpeas) = 1.20.0
 
 %description
 %{summary}. Supports basic commands like install, update and remove.
 
 %prep
-%autosetup -p1 -a1
-sed -i -e "s|URL https://download.gnome.org/sources/libpeas/1.20/libpeas-1.20.0.tar.xz|SOURCE_DIR \${CMAKE_CURRENT_LIST_DIR}/libpeas-1.20.0|" CMakeLists.txt
+%autosetup -p1
 
 %if %{buildsys} == "cmake"
 %build
@@ -59,11 +52,14 @@ popd
 %endif
 
 %files
-%license COPYING libpeas-1.20.0/COPYING
+%license COPYING
 %doc README.md
 %{_bindir}/%{name}
 
 %changelog
+* Thu Mar 23 2017 Igor Gnatenko <ignatenko@redhat.com> - 2-4
+- Unbundle libpeas
+
 * Mon Mar 6 2017 Jan Silhan <jsilhan@redhat.com> - 2-3
 - do not fail on empty transactions + extended summary