Add recursive dry setter

Close #154