Refactor common code in dialog implementations