update and add dual likelihood

not really.
but it passes other unit tests depend on it.
I will add more later.