becareful witht order of iteration!!!