update and add dual likelihood

ok cool.
as you already know, eventually, we want to cover all non-trivial code with tests