extend accepts iterator, so no need for this extra list