diff --git a/LICENSE.txt b/LICENSE.txt
index 719b954..fe2eb04 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,4 +1,4 @@
-Copyright (C) 2014-2017, New York University
+Copyright (C) 2014, New York University
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/PKG-INFO b/PKG-INFO
index 9428e5d..f8c1ddb 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 2.1
 Name: reprounzip
-Version: 1.0.16
+Version: 1.1
 Summary: Linux tool enabling reproducible experiments (unpacker)
 Home-page: https://www.reprozip.org/
 Author: Remi Rampin, Fernando Chirigati, Dennis Shasha, Juliana Freire
-Author-email: reprozip-users@vgc.poly.edu
+Author-email: dev@reprozip.org
 Maintainer: Remi Rampin
-Maintainer-email: remirampin@gmail.com
+Maintainer-email: remi@rampin.org
 License: BSD-3-Clause
 Project-URL: Homepage, https://github.com/ViDA-NYU/reprozip
 Project-URL: Documentation, https://docs.reprozip.org/
@@ -14,33 +14,6 @@ Project-URL: Examples, https://examples.reprozip.org/
 Project-URL: Say Thanks, https://saythanks.io/to/remram44
 Project-URL: Source, https://github.com/ViDA-NYU/reprozip
 Project-URL: Tracker, https://github.com/ViDA-NYU/reprozip/issues
-Description: ReproZip
-        ========
-        
-        `ReproZip <https://www.reprozip.org/>`__ is a tool aimed at simplifying the process of creating reproducible experiments from command-line executions, a frequently-used common denominator in computational science. It tracks operating system calls and creates a package that contains all the binaries, files and dependencies required to run a given command on the author's computational environment (packing step).  A reviewer can then extract the experiment in his environment to reproduce the results (unpacking step).
-        
-        reprounzip
-        ----------
-        
-        This is the component responsible for the unpacking step on Linux distributions.
-        
-        Please refer to `reprozip <https://pypi.python.org/pypi/reprozip>`__, `reprounzip-vagrant <https://pypi.python.org/pypi/reprounzip-vagrant>`_, and `reprounzip-docker <https://pypi.python.org/pypi/reprounzip-docker>`_ for other components and plugins.
-        
-        A GUI is available at `reprounzip-qt <https://pypi.python.org/pypi/reprounzip-qt>`_.
-        
-        Additional Information
-        ----------------------
-        
-        For more detailed information, please refer to our `website <https://www.reprozip.org/>`_, as well as to our `documentation <https://docs.reprozip.org/>`_.
-        
-        ReproZip is currently being developed at `NYU <http://engineering.nyu.edu/>`_. The team includes:
-        
-        * `Fernando Chirigati <http://fchirigati.com/>`_
-        * `Juliana Freire <https://vgc.poly.edu/~juliana/>`_
-        * `Remi Rampin <https://remirampin.com/>`_
-        * `Dennis Shasha <http://cs.nyu.edu/shasha/>`_
-        * `Vicky Steeves <https://vickysteeves.com/>`_
-        
 Keywords: reprozip,reprounzip,reproducibility,provenance,vida,nyu
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
@@ -51,3 +24,33 @@ Classifier: Programming Language :: Python :: 3
 Classifier: Topic :: Scientific/Engineering
 Classifier: Topic :: System :: Archiving
 Provides-Extra: all
+License-File: LICENSE.txt
+
+ReproZip
+========
+
+`ReproZip <https://www.reprozip.org/>`__ is a tool aimed at simplifying the process of creating reproducible experiments from command-line executions, a frequently-used common denominator in computational science. It tracks operating system calls and creates a bundle that contains all the binaries, files and dependencies required to run a given command on the author's computational environment (packing step).  A reviewer can then extract the experiment in his environment to reproduce the results (unpacking step).
+
+reprounzip
+----------
+
+This is the component responsible for the unpacking step on Linux distributions.
+
+Please refer to `reprozip <https://pypi.python.org/pypi/reprozip>`__, `reprounzip-vagrant <https://pypi.python.org/pypi/reprounzip-vagrant>`_, and `reprounzip-docker <https://pypi.python.org/pypi/reprounzip-docker>`_ for other components and plugins.
+
+A GUI is available at `reprounzip-qt <https://pypi.python.org/pypi/reprounzip-qt>`_.
+
+Additional Information
+----------------------
+
+For more detailed information, please refer to our `website <https://www.reprozip.org/>`_, as well as to our `documentation <https://docs.reprozip.org/>`_.
+
+ReproZip is currently being developed at `NYU <http://engineering.nyu.edu/>`_. The team includes:
+
+* `Fernando Chirigati <http://fchirigati.com/>`_
+* `Juliana Freire <https://vgc.poly.edu/~juliana/>`_
+* `Remi Rampin <https://remi.rampin.org/>`_
+* `Dennis Shasha <http://cs.nyu.edu/shasha/>`_
+* `Vicky Rampin <https://vicky.rampin.org/>`_
+
+
diff --git a/README.rst b/README.rst
index f625f0f..3c70b46 100644
--- a/README.rst
+++ b/README.rst
@@ -1,7 +1,7 @@
 ReproZip
 ========
 
-`ReproZip <https://www.reprozip.org/>`__ is a tool aimed at simplifying the process of creating reproducible experiments from command-line executions, a frequently-used common denominator in computational science. It tracks operating system calls and creates a package that contains all the binaries, files and dependencies required to run a given command on the author's computational environment (packing step).  A reviewer can then extract the experiment in his environment to reproduce the results (unpacking step).
+`ReproZip <https://www.reprozip.org/>`__ is a tool aimed at simplifying the process of creating reproducible experiments from command-line executions, a frequently-used common denominator in computational science. It tracks operating system calls and creates a bundle that contains all the binaries, files and dependencies required to run a given command on the author's computational environment (packing step).  A reviewer can then extract the experiment in his environment to reproduce the results (unpacking step).
 
 reprounzip
 ----------
@@ -21,6 +21,6 @@ ReproZip is currently being developed at `NYU <http://engineering.nyu.edu/>`_. T
 
 * `Fernando Chirigati <http://fchirigati.com/>`_
 * `Juliana Freire <https://vgc.poly.edu/~juliana/>`_
-* `Remi Rampin <https://remirampin.com/>`_
+* `Remi Rampin <https://remi.rampin.org/>`_
 * `Dennis Shasha <http://cs.nyu.edu/shasha/>`_
-* `Vicky Steeves <https://vickysteeves.com/>`_
+* `Vicky Rampin <https://vicky.rampin.org/>`_
diff --git a/reprounzip.egg-info/PKG-INFO b/reprounzip.egg-info/PKG-INFO
index 9428e5d..f8c1ddb 100644
--- a/reprounzip.egg-info/PKG-INFO
+++ b/reprounzip.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 2.1
 Name: reprounzip
-Version: 1.0.16
+Version: 1.1
 Summary: Linux tool enabling reproducible experiments (unpacker)
 Home-page: https://www.reprozip.org/
 Author: Remi Rampin, Fernando Chirigati, Dennis Shasha, Juliana Freire
-Author-email: reprozip-users@vgc.poly.edu
+Author-email: dev@reprozip.org
 Maintainer: Remi Rampin
-Maintainer-email: remirampin@gmail.com
+Maintainer-email: remi@rampin.org
 License: BSD-3-Clause
 Project-URL: Homepage, https://github.com/ViDA-NYU/reprozip
 Project-URL: Documentation, https://docs.reprozip.org/
@@ -14,33 +14,6 @@ Project-URL: Examples, https://examples.reprozip.org/
 Project-URL: Say Thanks, https://saythanks.io/to/remram44
 Project-URL: Source, https://github.com/ViDA-NYU/reprozip
 Project-URL: Tracker, https://github.com/ViDA-NYU/reprozip/issues
-Description: ReproZip
-        ========
-        
-        `ReproZip <https://www.reprozip.org/>`__ is a tool aimed at simplifying the process of creating reproducible experiments from command-line executions, a frequently-used common denominator in computational science. It tracks operating system calls and creates a package that contains all the binaries, files and dependencies required to run a given command on the author's computational environment (packing step).  A reviewer can then extract the experiment in his environment to reproduce the results (unpacking step).
-        
-        reprounzip
-        ----------
-        
-        This is the component responsible for the unpacking step on Linux distributions.
-        
-        Please refer to `reprozip <https://pypi.python.org/pypi/reprozip>`__, `reprounzip-vagrant <https://pypi.python.org/pypi/reprounzip-vagrant>`_, and `reprounzip-docker <https://pypi.python.org/pypi/reprounzip-docker>`_ for other components and plugins.
-        
-        A GUI is available at `reprounzip-qt <https://pypi.python.org/pypi/reprounzip-qt>`_.
-        
-        Additional Information
-        ----------------------
-        
-        For more detailed information, please refer to our `website <https://www.reprozip.org/>`_, as well as to our `documentation <https://docs.reprozip.org/>`_.
-        
-        ReproZip is currently being developed at `NYU <http://engineering.nyu.edu/>`_. The team includes:
-        
-        * `Fernando Chirigati <http://fchirigati.com/>`_
-        * `Juliana Freire <https://vgc.poly.edu/~juliana/>`_
-        * `Remi Rampin <https://remirampin.com/>`_
-        * `Dennis Shasha <http://cs.nyu.edu/shasha/>`_
-        * `Vicky Steeves <https://vickysteeves.com/>`_
-        
 Keywords: reprozip,reprounzip,reproducibility,provenance,vida,nyu
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
@@ -51,3 +24,33 @@ Classifier: Programming Language :: Python :: 3
 Classifier: Topic :: Scientific/Engineering
 Classifier: Topic :: System :: Archiving
 Provides-Extra: all
+License-File: LICENSE.txt
+
+ReproZip
+========
+
+`ReproZip <https://www.reprozip.org/>`__ is a tool aimed at simplifying the process of creating reproducible experiments from command-line executions, a frequently-used common denominator in computational science. It tracks operating system calls and creates a bundle that contains all the binaries, files and dependencies required to run a given command on the author's computational environment (packing step).  A reviewer can then extract the experiment in his environment to reproduce the results (unpacking step).
+
+reprounzip
+----------
+
+This is the component responsible for the unpacking step on Linux distributions.
+
+Please refer to `reprozip <https://pypi.python.org/pypi/reprozip>`__, `reprounzip-vagrant <https://pypi.python.org/pypi/reprounzip-vagrant>`_, and `reprounzip-docker <https://pypi.python.org/pypi/reprounzip-docker>`_ for other components and plugins.
+
+A GUI is available at `reprounzip-qt <https://pypi.python.org/pypi/reprounzip-qt>`_.
+
+Additional Information
+----------------------
+
+For more detailed information, please refer to our `website <https://www.reprozip.org/>`_, as well as to our `documentation <https://docs.reprozip.org/>`_.
+
+ReproZip is currently being developed at `NYU <http://engineering.nyu.edu/>`_. The team includes:
+
+* `Fernando Chirigati <http://fchirigati.com/>`_
+* `Juliana Freire <https://vgc.poly.edu/~juliana/>`_
+* `Remi Rampin <https://remi.rampin.org/>`_
+* `Dennis Shasha <http://cs.nyu.edu/shasha/>`_
+* `Vicky Rampin <https://vicky.rampin.org/>`_
+
+
diff --git a/reprounzip.egg-info/requires.txt b/reprounzip.egg-info/requires.txt
index 4e09882..b6b1af6 100644
--- a/reprounzip.egg-info/requires.txt
+++ b/reprounzip.egg-info/requires.txt
@@ -3,6 +3,7 @@ rpaths>=0.8
 usagestats>=0.3
 requests
 distro
+pyelftools
 
 [all]
 reprounzip-vagrant>=1.0
diff --git a/reprounzip/common.py b/reprounzip/common.py
index 9c3db40..9c1866e 100644
--- a/reprounzip/common.py
+++ b/reprounzip/common.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 New York University
+# Copyright (C) 2014 New York University
 # This file is part of ReproZip which is released under the Revised BSD License
 # See file LICENSE for full license details.
 
@@ -374,6 +374,16 @@ def load_iofiles(config, runs):
         path = PosixPath(f['path'])
         readers = sorted(f.get('read_by_runs', []))
         writers = sorted(f.get('written_by_runs', []))
+        if (
+            not isinstance(readers, (tuple, list))
+            or not all(isinstance(e, int) for e in readers)
+        ):
+            raise InvalidConfig("read_by_runs should be a list of integers")
+        if (
+            not isinstance(writers, (tuple, list))
+            or not all(isinstance(e, int) for e in writers)
+        ):
+            raise InvalidConfig("written_by_runs should be a list of integers")
         if name in files:
             if files[name].path != path:
                 old_name, name = name, uniquenames(name)
@@ -656,6 +666,8 @@ def setup_logging(tag, verbosity):
                 (datetime.now().strftime("%Y-%m-%d"), sys.argv),
                 None))
 
+    logging.getLogger('urllib3').setLevel(logging.INFO)
+
 
 _usage_report = None
 
@@ -771,4 +783,24 @@ YIKRjGU7Of3CycOCbaT50VZHhEd5GS2Lvg41ngxtsE8JKnvPuim92dnCutD0beV+
 DCfXxuMMg3wo5pbqG+MvTdECaLwt14zWU259z8JX0BoeVG32kHlt2eUpm5PCfxqc
 dYuwZmAXksp0T0cWo0DnjJKRGQ==
 -----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDRDCCAiygAwIBAgIUXaa8P7qR4c0P51hCDIqj4GUbG/owDQYJKoZIhvcNAQEL
+BQAwEzERMA8GA1UEAwwIUmVwcm9aaXAwIBcNMjEwNDI5MjEwNTUzWhgPMjEyMTA0
+MjkyMTA1NTNaMBMxETAPBgNVBAMMCFJlcHJvWmlwMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEA3udPriZ8kziQE+OyLVozJFDSZTe8RLlpFsu/ZQjSnIh1
+TsENMMu1lwv0GVEpT/EbtD5ORtZzwYQ7Vuh+IO4TQDhA5KvyJD2gZW8hE4txkkQd
+yI5vSj0iiViA80tKB7FSDLsvz9iiDxShYHJI947gswbaLmampHIXD/Rjjs7+hmL5
+RRS5NL8vCp2/2QVj5wnJupa5O2l2T1M6S/SyFcAgBMM/FhDsaA/yf4NPcOG6gFuO
+b5mYz2ERSf4v9mRL+G3r6YULYGZWS5ThY0QoZ0lYt2nlthzwfftazrJ9+yfYBkoJ
+K6Ug8UGtyOb5m3mK00c4wS7/wzuGgLMszkE0nE9SfwIDAQABo4GNMIGKMB0GA1Ud
+DgQWBBSqrIPVnO5vkHj9ImGvOr38r4rcNjBOBgNVHSMERzBFgBSqrIPVnO5vkHj9
+ImGvOr38r4rcNqEXpBUwEzERMA8GA1UEAwwIUmVwcm9aaXCCFF2mvD+6keHND+dY
+QgyKo+BlGxv6MAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEB
+CwUAA4IBAQC2g8yX1c5JutH/qAKUVvqSwP2KBm3IyOjdbN7cvnwn0gMkwEj88j7p
+dKhfO0Kfp/N4iKj1YK7PBXfrdlYhxINSbfPSVS3A9XWi8pJwiwgBfjrrACRMhBsv
+HAQPnkXnaEJrQm//k8s4etT25JYaPgXS8t+dgVS0iqonYlpCB1XkE0gw1kLNCW5F
+1SimUehJ5bZrJYGgo6kp44F12kPMzNHvk50Sf2p3nm2d9/BNbbJQxUBKt9n+i6Ir
+xGGDWfg5F+BLKURWkoGBnnLPqkRxlkaGvk6QpIAfD1h99fTyuWUno3+NoQ7hS952
+yWbmqwbavTIyG+D+kfhbGFEdRxLF5BeK
+-----END CERTIFICATE-----
 '''
diff --git a/reprounzip/main.py b/reprounzip/main.py
index af2d5ee..e9f8a6e 100644
--- a/reprounzip/main.py
+++ b/reprounzip/main.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 New York University
+# Copyright (C) 2014 New York University
 # This file is part of ReproZip which is released under the Revised BSD License
 # See file LICENSE for full license details.
 
@@ -31,7 +31,7 @@ from reprounzip import signals
 from reprounzip.unpackers.common import UsageError
 
 
-__version__ = '1.0.16'
+__version__ = '1.1'
 
 
 logger = logging.getLogger('reprounzip')
@@ -96,7 +96,7 @@ def main():
         description="reprounzip is the ReproZip component responsible for "
                     "unpacking and reproducing an experiment previously "
                     "packed with reprozip",
-        epilog="Please report issues to reprozip-users@vgc.poly.edu")
+        epilog="Please report issues to users@reprozip.org")
     add_options(parser)
     parser.add_argument('-v', '--verbose', action='count', default=1,
                         dest='verbosity',
diff --git a/reprounzip/pack_info.py b/reprounzip/pack_info.py
index 3256782..a6dbcaf 100644
--- a/reprounzip/pack_info.py
+++ b/reprounzip/pack_info.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 New York University
+# Copyright (C) 2014 New York University
 # This file is part of ReproZip which is released under the Revised BSD License
 # See file LICENSE for full license details.
 
diff --git a/reprounzip/parameters.py b/reprounzip/parameters.py
index 9b12fbb..84613a2 100644
--- a/reprounzip/parameters.py
+++ b/reprounzip/parameters.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 New York University
+# Copyright (C) 2014 New York University
 # This file is part of ReproZip which is released under the Revised BSD License
 # See file LICENSE for full license details.
 
@@ -100,6 +100,12 @@ _bundled_parameters = {
         "i686": "https://github.com/remram44/static-sudo/releases/download/"
                 "current/rpzsudo-i686"
     },
+    "rpztar_url": {
+        "x86_64": "https://github.com/remram44/rpztar/releases/download/"
+                  "v1/rpztar-x86_64",
+        "i686": "https://github.com/remram44/rpztar/releases/download/"
+                "v1/rpztar-i686"
+    },
     "docker_images": {
         "default": "debian",
         "images": {
@@ -164,12 +170,24 @@ _bundled_parameters = {
                         "distribution": "ubuntu",
                         "image": "ubuntu:18.04",
                         "name": "Ubuntu 18.04 'Bionic'"
+                    },
+                    {
+                        "version": "^18\\.10$",
+                        "distribution": "ubuntu",
+                        "image": "ubuntu:18.10",
+                        "name": "Ubuntu 18.10 'Cosmic'"
+                    },
+                    {
+                        "version": "^19\\.04$",
+                        "distribution": "ubuntu",
+                        "image": "ubuntu:19.04",
+                        "name": "Ubuntu 19.04 'Disco'"
                     }
                 ],
                 "default": {
                     "distribution": "ubuntu",
-                    "image": "ubuntu:16.04",
-                    "name": "Ubuntu 16.04 'Xenial'"
+                    "image": "ubuntu:19.04",
+                    "name": "Ubuntu 19.04 'Disco'"
                 }
             },
             "debian": {
@@ -340,8 +358,8 @@ _bundled_parameters = {
                         "version": "^15\\.04$",
                         "distribution": "ubuntu",
                         "architectures": {
-                            "i686": "ubuntu/vivid32",
-                            "x86_64": "ubuntu/vivid64"
+                            "i686": "bento/ubuntu-15.04-i386",
+                            "x86_64": "bento/ubuntu-15.04"
                         },
                         "name": "Ubuntu 15.04 'Vivid'"
                     },
@@ -349,8 +367,8 @@ _bundled_parameters = {
                         "version": "^15\\.10$",
                         "distribution": "ubuntu",
                         "architectures": {
-                            "i686": "ubuntu/wily32",
-                            "x86_64": "ubuntu/wily64"
+                            "i686": "bento/ubuntu-15.10-i386",
+                            "x86_64": "bento/ubuntu-15.10"
                         },
                         "name": "Ubuntu 15.10 'Wily'"
                     },
@@ -394,19 +412,58 @@ _bundled_parameters = {
                         "version": "^18\\.04$",
                         "distribution": "ubuntu",
                         "architectures": {
-                            "i686": "bento/ubuntu-18.04-i386",
                             "x86_64": "bento/ubuntu-18.04"
                         },
                         "name": "Ubuntu 18.04 'Bionic'"
+                    },
+                    {
+                        "version": "^18\\.10$",
+                        "distribution": "ubuntu",
+                        "architectures": {
+                            "x86_64": "bento/ubuntu-18.10"
+                        },
+                        "name": "Ubuntu 18.10 'Cosmic'"
+                    },
+                    {
+                        "version": "^19\\.04$",
+                        "distribution": "ubuntu",
+                        "architectures": {
+                            "x86_64": "bento/ubuntu-19.04"
+                        },
+                        "name": "Ubuntu 19.04 'Disco'"
+                    },
+                    {
+                        "version": "^19\\.10",
+                        "distribution": "ubuntu",
+                        "architectures": {
+                            "x86_64": "bento/ubuntu-19.10"
+                        },
+                        "name": "Ubuntu 19.10 'Eoan'"
+                    },
+                    {
+                        "version": "^20\\.04$",
+                        "distribution": "ubuntu",
+                        "architectures": {
+                            "x86_64": "bento/ubuntu-20.04"
+                        },
+                        "name": "Ubuntu 20.04 'Focal'"
+                    },
+                    {
+                        "version": "^20\\.10",
+                        "distribution": "ubuntu",
+                        "architectures": {
+                            "x86_64": "bento/ubuntu-20.10"
+                        },
+                        "name": "Ubuntu 20.10 'Groovy'"
                     }
                 ],
                 "default": {
                     "distribution": "ubuntu",
                     "architectures": {
-                        "i686": "bento/ubuntu-18.04-i386",
-                        "x86_64": "bento/ubuntu-18.04"
+                        "i686": "bento/ubuntu-17.04-i386",
+                        "x86_64": "bento/ubuntu-20.04"
                     },
-                    "name": "Ubuntu 18.04 'Bionic'"
+                    "name": "Ubuntu"
                 }
             },
             "debian": {
@@ -415,8 +472,8 @@ _bundled_parameters = {
                         "version": "^(7(\\.|$))|(wheezy)",
                         "distribution": "debian",
                         "architectures": {
-                            "i686": "remram/debian-7-i386",
-                            "x86_64": "remram/debian-7-amd64"
+                            "i686": "bento/debian-7.11-i386",
+                            "x86_64": "bento/debian-7"
                         },
                         "name": "Debian 7 'Wheezy'"
                     },
@@ -437,15 +494,24 @@ _bundled_parameters = {
                             "x86_64": "remram/debian-9-amd64"
                         },
                         "name": "Debian 9 'Stretch'"
+                    },
+                    {
+                        "version": "^(10(\\.|$))|(buster)",
+                        "distribution": "debian",
+                        "architectures": {
+                            "i686": "remram/debian-10-i386",
+                            "x86_64": "bento/debian-10"
+                        },
+                        "name": "Debian 10 'Buster'"
                     }
                 ],
                 "default": {
                     "distribution": "debian",
                     "architectures": {
-                        "i686": "remram/debian-8-i386",
-                        "x86_64": "remram/debian-8-amd64"
+                        "i686": "remram/debian-10-i386",
+                        "x86_64": "bento/debian-10"
                     },
-                    "name": "Debian 8 'Jessie'"
+                    "name": "Debian 10 'Buster'"
                 }
             },
             "centos": {
@@ -463,27 +529,36 @@ _bundled_parameters = {
                         "version": "^6\\.",
                         "distribution": "centos",
                         "architectures": {
-                            "i686": "bento/centos-6.7-i386",
-                            "x86_64": "bento/centos-6.7"
+                            "i686": "bento/centos-6.10-i386",
+                            "x86_64": "bento/centos-6.10"
                         },
-                        "name": "CentOS 6.7"
+                        "name": "CentOS 6.10"
                     },
                     {
                         "version": "^7\\.",
                         "distribution": "centos",
                         "architectures": {
-                            "x86_64": "bento/centos-7.2"
+                            "i686": "remram/centos-7-i386",
+                            "x86_64": "bento/centos-7.6"
+                        },
+                        "name": "CentOS 7.6"
+                    },
+                    {
+                        "version": "^8\\.",
+                        "distribution": "centos",
+                        "architectures": {
+                            "x86_64": "bento/centos-8"
                         },
-                        "name": "CentOS 7.2"
+                        "name": "CentOS 8"
                     }
                 ],
                 "default": {
                     "distribution": "centos",
                     "architectures": {
-                        "i686": "bento/centos-6.7-i386",
-                        "x86_64": "bento/centos-6.7"
+                        "i686": "remram/centos-7-i386",
+                        "x86_64": "bento/centos-8"
                     },
-                    "name": "CentOS 6.7"
+                    "name": "CentOS"
                 }
             },
             "centos linux": {
@@ -501,27 +576,35 @@ _bundled_parameters = {
                         "version": "^6\\.",
                         "distribution": "centos",
                         "architectures": {
-                            "i686": "bento/centos-6.7-i386",
-                            "x86_64": "bento/centos-6.7"
+                            "i686": "bento/centos-6.10-i386",
+                            "x86_64": "bento/centos-6.10"
                         },
-                        "name": "CentOS 6.7"
+                        "name": "CentOS 6.10"
                     },
                     {
                         "version": "^7\\.",
                         "distribution": "centos",
                         "architectures": {
-                            "x86_64": "bento/centos-7.2"
+                            "x86_64": "bento/centos-7.6"
+                        },
+                        "name": "CentOS 7.6"
+                    },
+                    {
+                        "version": "^8\\.",
+                        "distribution": "centos",
+                        "architectures": {
+                            "x86_64": "bento/centos-8"
                         },
-                        "name": "CentOS 7.2"
+                        "name": "CentOS 8"
                     }
                 ],
                 "default": {
                     "distribution": "centos",
                     "architectures": {
-                        "i686": "bento/centos-6.7-i386",
-                        "x86_64": "bento/centos-6.7"
+                        "i686": "remram/centos-7-i386",
+                        "x86_64": "bento/centos-8"
                     },
-                    "name": "CentOS 6.7"
+                    "name": "CentOS"
                 }
             },
             "fedora": {
@@ -584,15 +667,55 @@ _bundled_parameters = {
                             "x86_64": "bento/fedora-28"
                         },
                         "name": "Fedora 28"
+                    },
+                    {
+                        "version": "^29$",
+                        "distribution": "fedora",
+                        "architectures": {
+                            "x86_64": "bento/fedora-29"
+                        },
+                        "name": "Fedora 29"
+                    },
+                    {
+                        "version": "^30",
+                        "distribution": "fedora",
+                        "architectures": {
+                            "x86_64": "bento/fedora-30"
+                        },
+                        "name": "Fedora 30"
+                    },
+                    {
+                        "version": "^31",
+                        "distribution": "fedora",
+                        "architectures": {
+                            "x86_64": "bento/fedora-31"
+                        },
+                        "name": "Fedora 31"
+                    },
+                    {
+                        "version": "^32",
+                        "distribution": "fedora",
+                        "architectures": {
+                            "x86_64": "bento/fedora-32"
+                        },
+                        "name": "Fedora 32"
+                    },
+                    {
+                        "version": "^33",
+                        "distribution": "fedora",
+                        "architectures": {
+                            "x86_64": "bento/fedora-33"
+                        },
+                        "name": "Fedora 33"
                     }
                 ],
                 "default": {
                     "distribution": "fedora",
                     "architectures": {
                         "i686": "remram/fedora-24-i386",
-                        "x86_64": "remram/fedora-24-amd64"
+                        "x86_64": "bento/fedora-33"
                     },
-                    "name": "Fedora 24"
+                    "name": "Fedora"
                 }
             }
         }
diff --git a/reprounzip/signals.py b/reprounzip/signals.py
index 9973bf9..f8d64b3 100644
--- a/reprounzip/signals.py
+++ b/reprounzip/signals.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 New York University
+# Copyright (C) 2014 New York University
 # This file is part of ReproZip which is released under the Revised BSD License
 # See file LICENSE for full license details.
 
diff --git a/reprounzip/unpackers/common/__init__.py b/reprounzip/unpackers/common/__init__.py
index a6ada91..63870b9 100644
--- a/reprounzip/unpackers/common/__init__.py
+++ b/reprounzip/unpackers/common/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 New York University
+# Copyright (C) 2014 New York University
 # This file is part of ReproZip which is released under the Revised BSD License
 # See file LICENSE for full license details.
 
@@ -15,6 +15,7 @@ from reprounzip.unpackers.common.misc import UsageError, \
     COMPAT_OK, COMPAT_NO, COMPAT_MAYBE, \
     composite_action, target_must_exist, unique_names, \
     make_unique_name, shell_escape, load_config, busybox_url, sudo_url, \
+    rpztar_url, \
     FileUploader, FileDownloader, get_runs, add_environment_options, \
     fixup_environment, interruptible_call, \
     metadata_read, metadata_write, metadata_initial_iofiles, \
@@ -28,7 +29,7 @@ __all__ = ['THIS_DISTRIBUTION', 'PKG_NOT_INSTALLED', 'select_installer',
            'UsageError', 'CantFindInstaller',
            'composite_action', 'target_must_exist', 'unique_names',
            'make_unique_name', 'shell_escape', 'load_config', 'busybox_url',
-           'sudo_url',
+           'sudo_url', 'rpztar_url',
            'join_root', 'FileUploader', 'FileDownloader', 'get_runs',
            'add_environment_options', 'fixup_environment',
            'interruptible_call', 'metadata_read', 'metadata_write',
diff --git a/reprounzip/unpackers/common/misc.py b/reprounzip/unpackers/common/misc.py
index 44572ad..c227dc7 100644
--- a/reprounzip/unpackers/common/misc.py
+++ b/reprounzip/unpackers/common/misc.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 New York University
+# Copyright (C) 2014 New York University
 # This file is part of ReproZip which is released under the Revised BSD License
 # See file LICENSE for full license details.
 
@@ -135,6 +135,12 @@ def sudo_url(arch):
     return get_parameter('rpzsudo_url')[arch]
 
 
+def rpztar_url(arch):
+    """Gets the correct URL for the rpztar binary given the architecture.
+    """
+    return get_parameter('rpztar_url')[arch]
+
+
 class FileUploader(object):
     """Common logic for 'upload' commands.
     """
diff --git a/reprounzip/unpackers/common/packages.py b/reprounzip/unpackers/common/packages.py
index 972a16e..188b3bb 100644
--- a/reprounzip/unpackers/common/packages.py
+++ b/reprounzip/unpackers/common/packages.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 New York University
+# Copyright (C) 2014 New York University
 # This file is part of ReproZip which is released under the Revised BSD License
 # See file LICENSE for full license details.
 
@@ -69,8 +69,8 @@ class AptInstaller(object):
         pkgs_dict = dict((pkg.name, (pkg, PKG_NOT_INSTALLED))
                          for pkg in packages)
         try:
-            for l in p.stdout:
-                fields = l.split()
+            for line in p.stdout:
+                fields = line.split()
                 if len(fields) == 2:
                     name = fields[0].decode('ascii')
                     status = fields[1].decode('ascii')
@@ -124,9 +124,9 @@ class YumInstaller(object):
         pkgs_dict = dict((pkg.name, (pkg, PKG_NOT_INSTALLED))
                          for pkg in packages)
         try:
-            for l in p.stdout:
-                if l[0] == b'+':
-                    fields = l[1:].split()
+            for line in p.stdout:
+                if line[0] == b'+':
+                    fields = line[1:].split()
                     if len(fields) == 2:
                         name = fields[0].decode('ascii')
                         status = fields[1].decode('ascii')
diff --git a/reprounzip/unpackers/common/x11.py b/reprounzip/unpackers/common/x11.py
index a0a2e98..3a5884b 100644
--- a/reprounzip/unpackers/common/x11.py
+++ b/reprounzip/unpackers/common/x11.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 New York University
+# Copyright (C) 2014 New York University
 # This file is part of ReproZip which is released under the Revised BSD License
 # See file LICENSE for full license details.
 
@@ -71,7 +71,7 @@ class Xauth(object):
         address_length = _read_short(fp)
         address = fp.read(address_length)
         number_length = _read_short(fp)
-        number = int(fp.read(number_length))
+        number = int(fp.read(number_length)) if number_length else None
         name_length = _read_short(fp)
         name = fp.read(name_length)
         data_length = _read_short(fp)
@@ -154,14 +154,18 @@ class X11Handler(BaseX11Handler):
                     if (entry.name == 'MIT-MAGIC-COOKIE-1' and
                             entry.number == local_display):
                         if entry.family == Xauth.FAMILY_LOCAL:
+                            logger.debug("Found cookie for local connection")
                             xauth_entries[(entry.family, None)] = entry
                         elif (entry.family == Xauth.FAMILY_INTERNET or
                                 entry.family == Xauth.FAMILY_INTERNET6):
+                            logger.debug("Found cookie for %r",
+                                         (entry.family, entry.address))
                             xauth_entries[(entry.family,
                                            entry.address)] = entry
-        # FIXME: this completely ignores addresses
+        else:
+            logger.debug("No Xauthority file")
 
-        logger.debug("Possible X endpoints: %s", (possible,))
+        logger.debug("Possible X endpoints: %s", possible)
 
         # Select socket and authentication cookie
         self.xauth_record = None
@@ -195,6 +199,7 @@ class X11Handler(BaseX11Handler):
         # Didn't find an Xauthority record -- assume no authentication is
         # needed, but still set self.connection_info
         if self.connection_info is None:
+            logger.debug("Didn't find any matching Xauthority entry")
             for family, address in possible:
                 # Only try UNIX sockets, we'll use 127.0.0.1 otherwise
                 if family == Xauth.FAMILY_LOCAL:
diff --git a/reprounzip/unpackers/default.py b/reprounzip/unpackers/default.py
index 6e0dd8c..822df3d 100644
--- a/reprounzip/unpackers/default.py
+++ b/reprounzip/unpackers/default.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 New York University
+# Copyright (C) 2014 New York University
 # This file is part of ReproZip which is released under the Revised BSD License
 # See file LICENSE for full license details.
 
@@ -18,6 +18,9 @@ from __future__ import division, print_function, unicode_literals
 
 import argparse
 import copy
+from elftools.common.exceptions import ELFError
+from elftools.elf.elffile import ELFFile
+from elftools.elf.segments import InterpSegment
 import logging
 import os
 import platform
@@ -45,6 +48,17 @@ from reprounzip.utils import unicode_, irange, iteritems, itervalues, \
 logger = logging.getLogger('reprounzip')
 
 
+def get_elf_interpreter(file):
+    try:
+        elf = ELFFile(file)
+        for segment in elf.iter_segments():
+            if isinstance(segment, InterpSegment):
+                return segment.get_interp_name()
+        return None
+    except ELFError:
+        return None
+
+
 def installpkgs(args):
     """Installs the necessary packages on the current machine.
     """
@@ -203,30 +217,38 @@ def directory_run(args):
 
     # Gets library paths
     lib_dirs = []
+    logger.debug("Running: %s", "/sbin/ldconfig -v -N")
     p = subprocess.Popen(['/sbin/ldconfig', '-v', '-N'],
-                         stdout=subprocess.PIPE)
+                         stdin=subprocess.PIPE,
+                         stdout=subprocess.PIPE,
+                         stderr=subprocess.PIPE)
+    stdout, _ = p.communicate()
     try:
-        for l in p.stdout:
-            if len(l) < 3 or l[0] in (b' ', b'\t'):
+        for line in stdout.splitlines():
+            if len(line) < 2 or line[0] in (b' ', b'\t'):
                 continue
-            if l.endswith(b':\n'):
-                lib_dirs.append(Path(l[:-2]))
+            if line.endswith(b':'):
+                lib_dirs.append(Path(line[:-1]))
     finally:
-        p.wait()
-    lib_dirs = ('export LD_LIBRARY_PATH=%s' % ':'.join(
-                shell_escape(unicode_(join_root(root, d)))
-                for d in lib_dirs))
+        if p.returncode != 0:
+            raise subprocess.CalledProcessError(p.returncode,
+                                                ['/sbin/ldconfig', '-v', '-N'])
 
-    cmds = [lib_dirs]
+    cmds = []
     for run_number in selected_runs:
         run = runs[run_number]
         cmd = 'cd %s && ' % shell_escape(
             unicode_(join_root(root,
                                Path(run['workingdir']))))
         cmd += '/usr/bin/env -i '
+        cmd += 'LD_LIBRARY_PATH=%s' % ':'.join(
+            shell_escape(unicode_(join_root(root, d)))
+            for d in lib_dirs
+        )
         environ = run['environ']
         environ = fixup_environment(environ, args)
         if args.x11:
+            environ = dict(environ)
             if 'DISPLAY' in os.environ:
                 environ['DISPLAY'] = os.environ['DISPLAY']
             if 'XAUTHORITY' in os.environ:
@@ -248,6 +270,14 @@ def directory_run(args):
         path = ':'.join(unicode_(d) for d in dir_path + path)
         cmd += 'PATH=%s ' % shell_escape(path)
 
+        interpreter = get_elf_interpreter(
+            join_root(root, PosixPath(run['binary'])).open('rb'),
+        )
+        if interpreter is not None:
+            interpreter = Path(interpreter)
+            if interpreter.exists():
+                cmd += '%s ' % shell_escape(str(join_root(root, interpreter)))
+
         # FIXME : Use exec -a or something if binary != argv[0]
         if cmdline is None:
             argv = run['argv']
@@ -275,6 +305,7 @@ def directory_run(args):
     cmds = ' && '.join(cmds)
 
     signals.pre_run(target=target)
+    logger.debug("Running: %s", cmds)
     retcode = interruptible_call(cmds, shell=True)
     stderr.write("\n*** Command finished, status: %d\n" % retcode)
     signals.post_run(target=target, retcode=retcode)
@@ -576,6 +607,7 @@ def chroot_run(args):
         forwarders.append(fwd)
 
     signals.pre_run(target=target)
+    logger.debug("Running: %s", cmds)
     retcode = interruptible_call(cmds, shell=True)
     stderr.write("\n*** Command finished, status: %d\n" % retcode)
     signals.post_run(target=target, retcode=retcode)
diff --git a/reprounzip/unpackers/graph.py b/reprounzip/unpackers/graph.py
index fb591a0..c5d1555 100644
--- a/reprounzip/unpackers/graph.py
+++ b/reprounzip/unpackers/graph.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 New York University
+# Copyright (C) 2014 New York University
 # This file is part of ReproZip which is released under the Revised BSD License
 # See file LICENSE for full license details.
 
@@ -297,6 +297,7 @@ def read_events(database, all_forks, has_thread_flag):
     # doesn't do anything worth showing on the graph, it will be erased, unless
     # all_forks is True (--all-forks).
 
+    assert database.is_file()
     if PY3:
         # On PY3, connect() only accepts unicode
         conn = sqlite3.connect(str(database))
diff --git a/reprounzip/unpackers/provviewer.py b/reprounzip/unpackers/provviewer.py
index c126a48..bef298e 100644
--- a/reprounzip/unpackers/provviewer.py
+++ b/reprounzip/unpackers/provviewer.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 New York University
+# Copyright (C) 2014 New York University
 # This file is part of ReproZip which is released under the Revised BSD License
 # See file LICENSE for full license details.
 
@@ -49,6 +49,7 @@ def generate(target, configfile, database):
 
     has_thread_flag = config.format_version >= LooseVersion('0.7')
 
+    assert database.is_file()
     if PY3:
         # On PY3, connect() only accepts unicode
         conn = sqlite3.connect(str(database))
diff --git a/reprounzip/utils.py b/reprounzip/utils.py
index 5035f6f..7566fc3 100644
--- a/reprounzip/utils.py
+++ b/reprounzip/utils.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 New York University
+# Copyright (C) 2014 New York University
 # This file is part of ReproZip which is released under the Revised BSD License
 # See file LICENSE for full license details.
 
@@ -68,8 +68,9 @@ if PY3:
     itervalues = lambda d: d.values()
     listvalues = lambda d: list(d.values())
 
-    stdout_bytes, stderr_bytes = sys.stdout.buffer, sys.stderr.buffer
-    stdin_bytes = sys.stdin.buffer
+    stdout_bytes = sys.stdout.buffer if sys.stdout is not None else None
+    stderr_bytes = sys.stderr.buffer if sys.stderr is not None else None
+    stdin_bytes = sys.stdin.buffer if sys.stdin is not None else None
     stdout, stderr = sys.stdout, sys.stderr
 else:
     izip = itertools.izip
diff --git a/setup.py b/setup.py
index 39ccd44..090a2d9 100644
--- a/setup.py
+++ b/setup.py
@@ -15,9 +15,10 @@ req = [
     'rpaths>=0.8',
     'usagestats>=0.3',
     'requests',
-    'distro']
+    'distro',
+    'pyelftools']
 setup(name='reprounzip',
-      version='1.0.16',
+      version='1.1',
       packages=['reprounzip', 'reprounzip.unpackers',
                 'reprounzip.unpackers.common', 'reprounzip.plugins'],
       entry_points={
@@ -38,9 +39,9 @@ setup(name='reprounzip',
                   'reprounzip-vistrails>=1.0']},
       description="Linux tool enabling reproducible experiments (unpacker)",
       author="Remi Rampin, Fernando Chirigati, Dennis Shasha, Juliana Freire",
-      author_email='reprozip-users@vgc.poly.edu',
+      author_email='dev@reprozip.org',
       maintainer="Remi Rampin",
-      maintainer_email='remirampin@gmail.com',
+      maintainer_email='remi@rampin.org',
       url='https://www.reprozip.org/',
       project_urls={
           'Homepage': 'https://github.com/ViDA-NYU/reprozip',