updated with loop