Lots of changes... Iterator made