added memoize, now enumerators should not try to be efficient when repeated calls to current are made