@Override
  public void run() {
    InputStream inputStream = requestHandler.getInputStream();
    RequestParser requestParser = new RequestParser(inputStream);
    HTTPStatusCodes httpStatusCodes = new HTTPStatusCodes();
    Routes routes = new Routes(directory);
    Response response = new Response(httpStatusCodes, routes, port);
    ResponsePresenter responsePresenter = new ResponsePresenter(response);

      try {
        Request request = requestParser.parse();
        System.out.println(request.getFullRequest());
        DataOutputStream dataOutputStream = new DataOutputStream(requestHandler.getOutputStream());
        dataOutputStream.write(responsePresenter.present(request));
        dataOutputStream.flush();
      } catch (IOException e) {
        e.printStackTrace();
      }

    requestHandler.closeSocket();
  }