1. A method for performing technology mapping, the method comprising: a) receiving a design that is not bounded to a particular technology; b) repeatedly: selecting from the design a candidate sub-network, identifying at least one replacement sub-network from a storage structure that stores replacement sub-networks; replacing the selected candidate sub-network in the design with the replacement sub-network. c) wherein at least each of a first set of replacement sub-networks have multiple circuit elements, wherein each of the multiple circuit elements of a first-set replacement sub-network is independently selectable by the method.