use iterater instead of creating new list