beginning to implement iterator