Refactor presentation

- Make all api endpoints use presenters.
- Make presenters use common logic where possible.