updated optimize