they don't need to return a value. Adjusted reset() to work with this.
It is a bit problematic because if internal functions don't look at the
flag and still return a value orginally this leaked. So I free the value
in any case, which kind of makes the speed gain a bit smaller