Add event api.
Refactor how objects are represented. Add all objects used in the api.
Implement all remaining endpoints.