update and add dual likelihood

we only store lambda in data member because alpha can be computed.