don't memoize to avoid warnings