@Override
    public Iterable<JavaFileObject> list(JavaFileManager.Location location,
            String packageName, Set<JavaFileObject.Kind> kinds,
            boolean recurse) throws IOException{
        
        if(inMemory){
            ArrayList<JavaFileObject> result = new ArrayList<JavaFileObject>();
            if(kinds.contains(Kind.CLASS)){
                for(JavaFileObject o : classStore.values()){
                    if(o.getName().contains(packageName)){
                        result.add(o);
                    }
                }
            }

            if(kinds.contains(Kind.SOURCE)){
                for(JavaFileObject o : srcStore.values()){
                    if(o.getName().contains(packageName)){
                        result.add(o);
                    }
                }
            }
        

            for(JavaFileObject jfo : super.list(location, packageName, kinds,recurse)){
                result.add(jfo);
            }

            return result;
        }
        
        return super.list(location, packageName, kinds,recurse);
    }