recode with callbacks and connect dialog