1. A method for ensuring trust between code modules, the method comprising: receiving an application that uses a class of functionality, the application including a list of Trusted Code Groups (“TCGs”) trusted by the application to implement the class; receiving a library that implements the class of functionality, the library being signed using a signing key, the signature associating the library with a TCG, the TCG being an endorsement of trustworthiness; initiating a call to cause the library to be loaded; and prior to loading the library, causing the signature on the library to be verified to determine if the library is a member of one of the listed TCGs.