see http://blog.rlmflores.me/blog/2013/07/16/ruby-patterns-webservice-object/