renamed `sub` to `subtract` to be consistent with the static method and other names