Improved OO design

Hi, thanks for your project. I used it as the starting point to exercise on refactoring and improving OO design in ruby. No functionality added.