1. A computer implemented method for designing an integrated circuit, the method comprising: receiving a netlist; receiving physical layout information related to an integrated circuit based on the netlist; receiving an engineering change order (ECO) that changes at least one logical component of the physical layout; forming two or more possible solutions to achieve the ECO; ranking the two or more possible solutions based on two or more factors to obtain a highest ranked solution; and selecting the highest ranked solution.