refactor ClassLoader