implement a sinatra client