update and add dual likelihood

Do you think these unit tests cover all cases in the code? Just asking. If you say yes, I am fine with them