add iteration method