added basic iteration features