public Object instantiate(String name) throws ClassNotFoundException {
        
        String implementation = getProperty("me4se.implementation");
        
        if(implementation != null) {
        	implementation += ";";
        }
        else {
        	implementation = "";
        }
        implementation += "org.me4se.psi.java1";

        int pos = 0;
        do{
            int cut = implementation.indexOf(';', pos);
            if(cut == -1) cut = implementation.length();
            
            String qName = implementation.substring(pos, cut)+"."+name;
            
            try{
                Class clazz = Class.forName(qName);
                return clazz.newInstance();
            }
            catch(Exception e){
            }
            
            pos = cut+1;
        }
        while(pos < implementation.length());
        
        throw new ClassNotFoundException("No implementation class found for suffix "+name);

    }