Added iterartive function