iteration and important api adjustments