Classloader created on a local member to define a class from a bytecode loaded from a remote source.
 We use a classloader per each class loaded from a remote source as it allows us to discard the classloader
 and reload the class via another classloader as we see fit.
 bytecodes of inner/anonymous classes are kept with their parent classes. If there is nested inner classes,
 they are also kept in the same class loader.
 Delegation model:
 1. When the request matches the specific classname then it will provide the class on its own
 2. Then it delegates to the parent classloader - that's usually a regular classloader loading classes
 from a local classpath only
 3. Finally it delegates to 
ClassLocator which may initiate a remote lookup