this should be inside the ``else`` to avoid useless processing