???
oh iter is more like init