http://www.ruby-doc.org/stdlib-1.9.3/libdoc/singleton/rdoc/Singleton.html