I just noticed that your to_s method actually puts things out to the screen, which is a no-no. Later on, your web-app may use this library and want to display data on the webpage... except, it would appear on the server's terminal window.