added very basic iteration support