public CompilationResult compile(List<CompilationUnit> compilationUnits) {
        MemoryClassLoader classLoader = new MemoryClassLoader(compilationUnits);
        CompilationResult compilation = new CompilationResult(classLoader);
        if (compilation.passed()) {
            compilation.setCompiledClasses(loadCompiledClasses(compilationUnits, classLoader));
        } else {
            return compilation;
        }
        return compilation;
    }