let fromListWithSlaveWithSlave 
 ?(masterCallback:((choice->unit) option) = None)
 ?(masterPacking:((GObj.widget -> unit) option) = None
  (masterChoices:choices)

 ?(slaveCallback:((choice->unit) option) = None)
 ?(slavePacking:((GObj.widget -> unit) option) = None )
  (slaveChoices: choice -> choices) 

 ?(slaveSlaveCallback:((choice->unit) option) = None)
 ?(slaveSlavePacking:((GObj.widget -> unit) option) = None )
  (slaveSlaveChoices: choice -> choice -> choices) 
 
 = let master = 
     fromListWithSlave  ~masterCallback ~masterPacking masterChoices ~slaveCallback ~slavePacking slaveChoices in
 
   let slaveSlave = make  
         ~generator:(fun r -> slaveSlaveChoices (r#get "master") (r#get "slave"))
         ~msg:(mkenv [("master",master#selected);("slave",master#slave#selected)])
         ~key:"slaveSlave"
         ~callback:slaveSlaveCallback
         ~packing:slaveSlavePacking in

     let _ = master#slave#add_child slaveSlave in master