execute needs the start_idx param