added iterable&iterator (well at least tried to)