no need to memoize ids