1. A method to optimize a cell library template comprising: receiving target technology information; receiving a list of functions or cells to be included in the library, wherein the cells have not yet been created; before the cells have been created, receiving a set of drive strengths to be created for each function; removing unused drive strengths for used functions; providing an option for optionally removing unused drive strengths for used functions, wherein the option for removing unused drive strengths for used functions is a user-selectable option; providing an option for optionally adapting the cell library template to the new mix of cells, wherein the option for adapting the cell library template to the new mix of cells is a user-selectable option; before the cells have been created, receiving or deriving a set of transistor topologies for each pair of function and drive strength; using at least one computer processor, outputting a preliminary estimate of cell characteristics for different alternative cell templates; choosing a final template for the library as a function of the characteristics estimated for the ensemble of required cells; and based on the set of transistor topologies for each pair of function and drive strength and the final template, creating the cells.