maybe rename this to `AbstractReleasableHash` ?