made protocol.rb