updated version for next iteration