Refactor `Request` to be trait for simple testing and
easy adopting rustless to another environments.