The library contract needed to be changed in order to keep functionalities compatible between both versions.
Although the contract must be almost equal some things like error catching have behaved differently between them. Due to that,
we chose an approach that works for both packages, but we need to break the contract.