Refactor and improve code quality

* [ ] Handle errors with `httputil.HTTPError`
* [ ] Put `handler` package in `handler/v1`