* added iterator functionality