added iterative dale functions