class ServerWrapper {

    public boolean downloadVideo(String downloadId) {

        boolean successful = true;

        HttpUrl url = new HttpUrl.Builder()
                .scheme(this.Scheme)
                .host(this.Host)
                //.port(this.Port)
                .addPathSegment("download")
                .addQueryParameter("download_id", downloadId)
                .build();

        Request request = new Request.Builder()
                .url(url)
                .get()
                .build();

        try {
            // get video
            Response response = this.okHttpClient.newCall(request).execute();
            byte[] video = response.body().bytes();
            this.filesystemWrapper.saveDownloadedVideo(video);

        } catch (IOException e) {
            e.printStackTrace();
            successful = false;
        }
        catch (IllegalStateException e) {
            e.printStackTrace();
            successful = false;
        }
        return successful;
    }

    @Inject public  ServerWrapper(OkHttpClient okHttpClient, FileSystemWrapper filesystemWrapper);

}