more details about OO design
mnerge