fix iterable interface