add the dual KL method

nice!