update and add dual likelihood

In fact, this is a internal (private) cast.
added anyway