Component complementarity and transaction costs: the evolution of product design