We need to change the API little bit, because the proposed version has some design flaws. Like, what would happen, if there is request created, but no one cares?

Therefore, instead of creating `Request` in `Server` code, we will let the user to provide us with the callback 
    
    typedef Request RequestFactory();
    Future<Response> prepareRequest(RequestFactory factory) {...

Therefore, `prepareRequest` should take some factory callback that returns newly created request when we are ready to send it.