Pratical object oriented design in ruby