use Iterable instead of Array