@Override
	public Object parseClass(Class<?> c, Object o, MainView view){
		Method methods[] = c.getMethods();
		for(int i = 0; i < methods.length; i++){
			try{
				if(methods[i].isAnnotationPresent(Panel.class)){
					Method method = c.getMethod(methods[i].getName(), null);
					if(method.getReturnType() == JPanel.class){
						PluginArea pluginArea = method.getAnnotation(Panel.class).placement();
						Log.getLogger().log(Level.INFO, "Panel placement: " + pluginArea );
						if(o != null){
							JPanel panel = (JPanel) method.invoke(o, (Object[])null);
							view.addPlugin(panel, pluginArea);
						} else {
							Log.getLogger().log(Level.SEVERE, "Class not Initialized, do you have @InitializePlugin annotation?");
						}
					} else {
						Log.getLogger().log(Level.SEVERE, "@Panel invalid return type!");
					}			
				}
			}catch (IllegalAccessException | NoSuchMethodException | SecurityException | IllegalArgumentException | InvocationTargetException e){
				Log.getLogger().log(Level.SEVERE, "Exception", e);
			}
		}
		return o;
	}