Break Sinatra functionality out into strategy object