As we discussed before, you suggested not adding methods in the `likelihood model` class and creating a new interface class---`variational likelihood`.

Since 
* (1)we do not do multiple inheritance in Shogun
* (2)some KL method(s) may use some methods in the original likelihood class
* and (3) the interface of the `Inferecne method` base class, which only allows ONE `CLikelihoodModel*` as argument, is    
```C++
	CInferenceMethod(CKernel* kernel, CFeatures* features, 
CMeanFunction* mean, CLabels* labels, CLikelihoodModel* model);
``` 
    
I have to use these wrappers.
Let me know if you have a better idea for this.