1. A method comprising: a) identifying one or more of characteristics or properties which the most suitable code module should possess; b) passing the identified one or more of characteristics or properties to each of a plurality of possible functionally compatible code modules, either directly by a software application or via one or more intermediate layers; c) using the code modules to each carry out, under control of a hardware processor, a deterministic calculation of how well they conform to the identified one or more of characteristics or properties passed to the code modules and to return the result as a numeric score, either to the software application or to an intermediate layer; and d) executing the module having the best score, either directly by the software application or via an instantiation performed by the intermediate layer.